Отложенные ордера с учётом максимального лота. HELP - страница 2

 

Для решения задачи потребуется функция MarketInfo() и ее идентификаторы: MODE_MARGINREQUIRED, МODE_TICKVALUE, MODE_POINT, MODE_TICKSIZE. Функции: MathFloor(), MathCeil().

Сразу всю сетку не стоит ставить, а ставить по одному ордеру, по мере их срабатывания.

 
forex2030:
Подскажите, почему картинки не могу к тексту крепить, нет иконки.

При недостаточном рейтинге невозможно добавлять картинки.

 
Dmitry Fedoseev:

Для решения задачи потребуется функция MarketInfo() и ее идентификаторы: MODE_MARGINREQUIRED, МODE_TICKVALUE, MODE_POINT, MODE_TICKSIZE. Функции: MathFloor(), MathCeil()

Собрать бы ещё эту функцию))

 
forex2030:

Собрать бы ещё эту функцию))

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

так можно посчитать что с фикс.шагом и увелич.лотом, что наоборот, что совмещая

для верности можно проверить - считаешь объём и среднюю позицию по всем кроме последнего, умножаешь на дистанцию до оного. Должно остаться ровно на открытие, с небольшим перебором

 
Maxim Kuznetsov:

считаешь сколько на иструменте возможно засадить пунк*лот, вспоминаешь формулу суммы геометрической прогрессии, подставляешь, приводишь по выбранной переменной..
так можно посчитать что с фикс.шагом и увелич.лотом, что наоборот, что совмещая
для верности можно проверить - считаешь объём и среднюю позицию по всем кроме последнего, умножаешь на дистанцию до оного. Должно остаться ровно на открытие, с небольшим перебором

Спасибо за помощь, только вот совсем не помогло))

 
forex2030:

Спасибо за помощь, только вот совсем не помогло))

вы же хотите сетку рассчитать заранее и на полный депо ?

просадка по сетке это сумма геометрической прогрессии. Приравниваешь это к депо, получаешь уравнение. Дальше фиксируешь начальный лот, кол-во шагов или коэфф.прогрессии, а требуемое вытаскиваешь в левую часть уравнения и считаешь.

 

Есть расчёт максимального лота, как получить цену следующего ордера если лот должен быть больше предыдущего на *koeff

//+------------------------------------------------------------------+
//| Расчёт максимального лота                                        |
//+------------------------------------------------------------------+
double LotMax(){
   double Free   = AccountFreeMargin(),
          OneLT  = MarketInfo(Symbol(),MODE_MARGINREQUIRED),
          MinLT  = MarketInfo(Symbol(),MODE_MINLOT),
          MaxLT  = MarketInfo(Symbol(),MODE_MAXLOT),
          LTstep = MarketInfo(Symbol(),MODE_LOTSTEP),
          MaxLots=0.0;

       MaxLots = MathFloor(Free*OneLT/LTstep)*LTstep;
   if (MaxLots>MaxLT)  MaxLots=MaxLT;
   if (MaxLots<=0.0 || MaxLots<MinLT || (MaxLots*OneLT)>Free) MaxLots=0.0;
return(NormalizeDouble(MaxLots,2));}
 
forex2030:

Есть расчёт максимального лота, как получить цену следующего ордера если лот должен быть больше предыдущего на *koeff

Нужны какие-то условия для определения этой цены. Пока их нет, расчет невозможен. Объясните, как Вы вручную рассчитываете цену следующего ордера?

 
Ihor Herasko:

Объясните, как Вы вручную рассчитываете цену следующего ордера?

Я ставлю приблизительно, вот и бывают случаи когда ордер уходит в историю из-за не хватки свободной маржи для этого объёма лота.
Разве нельзя рассчитать следующие ордера зная цену первого и его объём ?

 
forex2030:

...
Разве нельзя рассчитать следующие ордера зная цену первого и его объём ?

Можно.

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