Как получить количество плавающих пунктов для всех открытых активных ордеров?
Results 1 to 7 of 7

Thread: Как получить количество плавающих пунктов для всех открытых активных ордеров?

  1. #1
    Привет, а как узнать количество пипсов по всем открытым ордерам в терминале в mql4?

  2. #2
    Quote Originally Posted by ;
    {quote} OrderSelect — это логическое значение, поэтому «==1» не требуется. Умножьте на 0,1, чтобы перевести пункты в пункты. И скобка не нужна, если за ней следует только что-то одно. Также всегда отсчитывайте свои заказы. Но да, у меня были опечатки
    делаю это на моем телефоне. Я отредактировал это только сейчас.
    хорошо, на самом деле это не сработало .. по какой-то причине всегда отображалось 35.xx, хотя я знаю, что это не правильное количество плавающих пипсов.

  3. #3
    Ах я вижу. Благодарю вас!

  4. #4
    Quote Originally Posted by ;
    {quote} зачем вы умножаете сумму на 0,1? а как насчет ваших скобок, кажется, что они отсутствуют для цикла for? Вот моя попытка.... double calcNetPips() { double sum=0; for(int i=0; ilt;OrdersTotal; i ) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == 1) { RefreshRates(); if(OrderType==0) sum =Bid-OrderOpenPrice(); else sum =OrderOpenPrice()-Ask; } } Сумма возврата*=0.1; }
    OrderSelect — это логическое значение, поэтому #8220;==1#8221; не требуется. Умножьте на 0,1, чтобы перевести пункты в пункты. И скобка не нужна, если за ней следует только что-то одно. Также всегда отсчитывайте свои заказы. Но да, у меня были опечатки
    делаю это на моем телефоне. Я отредактировал это только сейчас.

  5. #5

    Quote Originally Posted by ;
    Привет, а как узнать количество пипсов по всем открытым ордерам в терминале в mql4?
    Примерно так: Вставленный код double sum=0; for(int o=OrdersTotal()-1;ogt;=0;o#8212 if(OrderSelect(o,SELECT_BY_POS,MODE_TRADES){ RefreshRates(); if(OrderType()==0)sum =Bid-OrderOpenPrice (); if(OrderType())sum =OrderOpenPrice()-Ask;} sum*=0.1; Print(#8220;Сумма пунктов ордера=#8220; (string)sum);

  6. #6

    Quote Originally Posted by ;
    {quote} Примерно так: double sum=0; for(int o=OrdersTotal()-1;ogt;=0;o#8212 if(OrderSelect(o,SELECT_BY_POS,MODE_TRADES){ RefreshRates(); if(OrderType==0)sum =Bid-OrderOpenPrice() ; if(OrderType)sum =OrderOpenPrice()-Ask;} sum*=0.1;Print(#8220;Сумма пунктов ордера=#8220; (string)sum);
    почему вы умножаете сумму на 0,1? а как насчет ваших скобок, кажется, что они отсутствуют для цикла for? Вот моя попытка... Вставленный код double calcNetPips() { double sum=0; for(int i=0; ilt;OrdersTotal; i ) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == 1) { RefreshRates(); if(OrderType==0) sum =Bid-OrderOpenPrice(); else sum =OrderOpenPrice()-Ask; } } Сумма возврата*=0.1; }

  7. #7

    Quote Originally Posted by ;
    {quote} хорошо, на самом деле это не сработало.. по какой-то причине всегда отображалось 35.xx, хотя я знаю, что это не правильное число плавающих пипсов.
    Вы использовали свой код, особенно #8220;else#8221;? Если вы используете #8220;else#8221; после #8220;if(OrderType()==0)#8221; то он также будет включать в сумму отложенные ордера. Вставленный код if(OrderType()==0)//купить рыночный ордер else {}//все остальные рыночные ордера ожидание Я не уверен, что это ваша проблема, но если это так, вам нужно явно указать тип ордера индивидуально. Вставленный код if(OrderType()==0)/покупка рыночного ордера if(OrderType()==1)//продажа рыночного ордера также if(OrderType())//продажа рыночного ордера/также может использовать термины перечисления :/OP_BUY=0,OP_SELL=1 if(OrderType()==OP_BUY) if(OrderType()==OP_SELL) Также вы не можете вернуть задание, поэтому: return sum*=0.1; не будет работать; нужно сначала выполнить умножение, а затем вернуть значение: Сумма введенного кода*=0,1; сумма возврата;/или вернуть сумму*0.1;

Действующие разрешения

  • Вы не можете создавать новые темы
  • Вы не можете размещать ответы
  • Вы не можете использовать вложения
  • Вы не можете редактировать ваши записи
  •  
  • BB-код - Вкл.
  • Смайлики - Вкл.
  • Код [IMG] - Вкл.
  • Код [VIDEO] - Вкл.
  • HTML-код - Выкл.
Веб-сайт использует cookies
Веб-сайт использует cookies, в настоящее время некоторые из них уже установлены. Вы можете ознакомиться с более подробной информацией об использовании нами cookies здесь. Чтобы принять условия использования cookies, пожалуйста, нажмите на кнопку справа. Если вы продолжаете пользоваться веб-сайтом, вы по умолчанию принимаете условия использования cookies.