Привет, а как узнать количество пипсов по всем открытым ордерам в терминале в mql4?
Привет, а как узнать количество пипсов по всем открытым ордерам в терминале в mql4?
хорошо, на самом деле это не сработало .. по какой-то причине всегда отображалось 35.xx, хотя я знаю, что это не правильное количество плавающих пипсов.Originally Posted by ;
OrderSelect — это логическое значение, поэтому #8220;==1#8221; не требуется. Умножьте на 0,1, чтобы перевести пункты в пункты. И скобка не нужна, если за ней следует только что-то одно. Также всегда отсчитывайте свои заказы. Но да, у меня были опечаткиOriginally Posted by ;
делаю это на моем телефоне. Я отредактировал это только сейчас.
Примерно так: Вставленный код 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);Originally Posted by ;
почему вы умножаете сумму на 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; }Originally Posted by ;
Вы использовали свой код, особенно #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;Originally Posted by ;