Помогите со скриптом количество buy и sell - страница 2

 

можно ли заменить EURUSD универсальным значением которое подойдет к любому инструменту

Symbol()

Возвращает инструмент текущего графика.

 
splxgf:

Symbol()

Возвращает инструмент текущего графика.

Спасибо тебе огромное, помогло, внес правку в скрипт из девятого сообщения, надеюсь кому то из новичков он так же упростит возню в терминале и они тоже скажут тебе спасибо, потому что мне оч нравится он. Эх еще бы с просадкой что то придумать
 

С просадкой не думать, а написать что надо.

Есть Sell/Buy, а что за просадку хочется увидеть непонятно.

 
splxgf:

С просадкой не думать, а написать что надо.

Есть Sell/Buy, а что за просадку хочется увидеть непонятно.

там я обрисовывал.

Есть например ордера, 3 ask и 4 bid

Можно ли вычислить примерную просадку т.е. точку при которой обнулится баланс если оставить все на одном месте (точной наверное не получится с учетом спредов) при движение курса пары вниз и вверх для этих 7 ордеров.

Хочу добавить и эти данные в скрипт, чтоб появились еще две цифры одна показывающая просадку при движении графика вверх вторая для движения графика вниз для всех текущих ордеров.

Вообще же подумал, хорошо бы иметь встроенный калькулятор, но видать это отдельное приложение потребуется. Суть калькулятора. 8 ордеров, 4 вверх 4 вниз. эти ордера в калькулторе отображаются списком, еще в нем отображаются примерные уровни просадки вверх и вниз (пределы до которых хватит баланса). Берем клацаем на любой ордер, он вычитается из списка и данные просадки обновляются т.е. т.к. ордеров теперь 7 то и данные просадки (мот. не то слово использую тогда сорри) корректируются с учетом обновленной ситуации. П.С. сорри если сумбурно написано но вкладываю все доступные силы в то чтоб мысли оказалась струйной и понятной, большего не могу при всем желании из себя выжать.
 

Обрисовал и обрисовал чтобы это было понятно другому человеку это разные вещи.

Через сколько пунктов или на каком уровне сработает StopOut?

https://www.mql5.com/ru/code/9703

 

да, слово пары было не в тему, хочу узнать уровень просадки по всем имеющимся ордерам, т.е. две точки дойдя до которых баланс обнулится. одну при движении графика вверх, вторую при движении его вниз.

в ссылке не разобрался, но спасибо за нее, там очень объемный скрипт и показывает много инфы на графике, мне только две цифры нужны, точка просадки при движении графика вверх и точка просадки при движении графика вниз.

StopOut пробовал вставлять из документации

int level=AccountStopoutLevel();
if(AccountStopoutMode()==0)
Print("StopOut level = ", level, "%");
else
Print("StopOut level = ", level, " ", AccountCurrency());

account_balance=DoubleToStr(AccountStopoutLevel(),0)

показывает 20 и все.

 

StopLevel это уровень при котором произойдет принудительное закрытие позиций - 20%, эта циферка и не должна меняться.

Что значит "точка просадки при движении графика вверх"?

Уровень при котором произойдет StopOut ордеров Sell без учета длинных позиций? (иначе сложно объяснить две точки просадки)

 
|
Дойдет BID до сюда, баланс станет 0
|
|
|
|
1ордер buy++++++++++++++++++
|
Линия BID******************BID
|
1ордер sell------------------
|
2оредр buy++++++++++++++++++
|
|
|
Дойдет BID до сюда, баланс станет 0
|
|

Узнать нужно уровни на которых баланс превратится в 0, с учетом абсолютно всех ордеров и длинных и короотких кроме отложенных и прочих я не знаю какие там еще бывают. Если при одном из движений например вверх этот уровень не достижим т.е. при движении графика ввверх баланс только в плюс идет, то выводить например цифру 9.00000

 

Ну что значит всех ордеров? хочется увидеть уровень на графике одного символа, а ордера могут быть открыты по разным.

Вот часть кода выпиленного с i-UrovenZero

    double lots=.0;
    int total=OrdersTotal();
    for(int i=0; i<total; i++)
   {
    OrderSelect(i, SELECT_BY_POS);
    if(OrderSymbol() == Symbol())
      if (OrderType() == OP_BUY)
         lots += OrderLots();    
      else 
         lots -= OrderLots();
   }

   double   d_shift_3, u_shift_3; 
   d_shift_3 = AccountEquity() / (MarketInfo(Symbol(), MODE_TICKVALUE) * lots); 
   u_shift_3 = Bid - d_shift_3*Point;  
   Comment(u_shift_3);
 
splxgf:

Ну что значит всех ордеров? хочется увидеть уровень на графике одного символа, а ордера могут быть открыты по разным.

Да, этого я не учел, я просто не с разными а с одним в основном. Вообщем учитываются только ордера на том графике к которому прицеплен скрипт. Хотя кому то и вариант с многоинструментарностью бы понравился если это реально конечно.

Код не вставляется, пишет что символ i в третьей строке не правильный почему то.

Причина обращения: