Общие вопросы по разработке > Как сравнить position.Price c данными из файла?

Общие вопросы по разработке в Альфа-Директ 4. Обсуждение разработки пользовательских индикаторов, стратегий.
HO57G
Сообщения: 6
Зарегистрирован: 03 сен 2021, 17:24
Благодарил (а): 3 раза

Как сравнить position.Price c данными из файла?

Непрочитанное сообщение HO57G » 05 сен 2021, 13:41

Здравствуйте. Задался вопросом реализовать в индикаторе функцию оповещения, если текущая позиция по инструменту превысит заданное значение из файла (можно, конечно, прописать возможность вносить значение в индикатор при его установке, но мне важно, чтобы это было именно из файла). Со считыванием файла проблем, вроде как не возникает, но вот сравнить данные с position.Price не получается, компилятор выдаёт ошибки. Подскажите, пожалуйста, как это возможно реализовать?

Код: Выделить всё

...
var position = GetPosition(Input, Account);
   if (position.Position == 0)
      return;
   PP = position.Price;
...
string S = "";
string Path = "C:\\Position\\";
var Ticker =Input.VirtualSecurity.Split('=')[0];
string fileName = Ticker + ".txt";
var URL = Path + fileName;
var line1 = URL;
if (System.IO.File.Exists(URL))
{
   System.IO.StreamReader output = new System.IO.StreamReader(URL);
   {
      S = output.ReadLine();
      string[] Data = S.Split(' ');
      //PLim.Add(double.Parse(Data[0]));
      ...
      if (Data[0] < PP) // что здесь вообще должно быть?))
         {
          ShowMessage("Достигнут лимит");
         }
   }
}   

Также интересно понять, как использовать значение position.Price не только для сравнения, но и для вычислений, скажем чтобы найти, на сколько % position.Price превысил значение из файла

HO57G
Сообщения: 6
Зарегистрирован: 03 сен 2021, 17:24
Благодарил (а): 3 раза

Re: Как сравнить position.Price c данными из файла?

Непрочитанное сообщение HO57G » 05 сен 2021, 17:33

Реализовал это так

Код: Выделить всё

...
if  (double.Parse(Data[1]) < PP)
...

Но всё равно мне не понятно, как можно использовать значение position.Price в вычислениях (как разделить, например)
Последний раз редактировалось HO57G 05 сен 2021, 17:40, всего редактировалось 1 раз.

BugsDigger
Сообщения: 518
Зарегистрирован: 11 ноя 2018, 17:11
Благодарил (а): 21 раз
Поблагодарили: 87 раз

Re: Как сравнить position.Price c данными из файла?

Непрочитанное сообщение BugsDigger » 05 сен 2021, 17:39

Вы пытаетесь сравнить строку с переменной PP типа double (декларации PP вы не привели, но если присваивание проходит, то будем считать, что double), что некорректно, и компилятор вам на это намекает.

Если считывается строка типа "123,45", то вы вначале должны сконвертировать ее в double, например, так:

double QQ=Convert.ToDouble(Data[0]);
if (QQ < PP)
{
...
}

Position.Price - обычная переменная типа double. арифметика с ней стандартная. Что конкретно вызывает проблему?

HO57G
Сообщения: 6
Зарегистрирован: 03 сен 2021, 17:24
Благодарил (а): 3 раза

Re: Как сравнить position.Price c данными из файла?

Непрочитанное сообщение HO57G » 05 сен 2021, 17:57

Спасибо за ответ.
Кажется я запутался в самом простом. Как, допустим, position.Price умножить на 2? :oops:

BugsDigger
Сообщения: 518
Зарегистрирован: 11 ноя 2018, 17:11
Благодарил (а): 21 раз
Поблагодарили: 87 раз

Re: Как сравнить position.Price c данными из файла?

Непрочитанное сообщение BugsDigger » 05 сен 2021, 18:08

double t=position.Price*2;

HO57G
Сообщения: 6
Зарегистрирован: 03 сен 2021, 17:24
Благодарил (а): 3 раза

Re: Как сравнить position.Price c данными из файла?

Непрочитанное сообщение HO57G » 05 сен 2021, 18:20

В том то и дело, пытаюсь что-то похожее написать строчкой ниже, выдаёт ошибку: Внедрённый оператор не может быть объявлением или оператором с идентификатором в строке 87

Код: Выделить всё

...
if  (double.Parse(Data[1]) < PP)
double NewPrice = PP*5;
...

HO57G
Сообщения: 6
Зарегистрирован: 03 сен 2021, 17:24
Благодарил (а): 3 раза

Re: Как сравнить position.Price c данными из файла?

Непрочитанное сообщение HO57G » 05 сен 2021, 18:25

Всё, понял! 8-) Это всё из-за отсутствия скобочек {} :oops:


Вернуться в «Общие вопросы по разработке»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 13 гостей