Приветствую народ. Очень нужна помощь, нужно реализовать компенсаторный ордер

 
 

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

нужно чтоб 

1 чтоб компенсаторный ордер открывался только если отсутствует открытый компенсаторный ордер

2 чтоб компенсаторный ордер открывался только если L больше заданное количество пунктов, с slipage (с проскальзованием) заданным отдельной переменной в пунктах и не открывался, если компенсаторный ордер закроется по стопу в безубыток (эта функция есть) и цена будет двигаться только вверх.

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

функция должна быть типа 

void CompensatorOrders()
{
double OOP;
   for (int i=0; i<OrdersTotal(); i++)
   {   
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
         if (OrderSymbol()==Symbol())
         {
            int tip = OrderType();
            OOP = NormalizeDouble(OrderOpenPrice(),Digits);
            if (tip==OP_BUY)            
            { 
               if (L!=0 && Bid<=OOP-L*Point)
                  ... функция открытия ордера
            }                                        
            if (tip==OP_SELL)       
            { 
               if (L!=0 && Ask>=OOP+L*Point)
                  ... функция открытия ордера
            }
         }
      }
   }
}

сделал так, но открывается и открывается без  остановки и когда цена близится к основному убыточному то тоже блин открывается

 
dmitri58_mql5:  и так, открывается позиция, уходит в минус на заданное количество пунктов L, открывается обратный ордер с таким же лотом

Пара вопросов: 1) пробовали математически посчитать, может быть открытие компенсатора эквивалентно закрытию?  2) Если основной уйдет в + и будет закрыт, а компенсаторный уйдет в минус, то к нему снова нужен компенсатор?    Попробуйте в качестве магика для компенсатора номер основного ордера. Тогда найдя ордер с таким магиком будете знать о наличии компенсатора... Это предотвратит повтор

 
dmitri58_mql5:
 

функция должна быть типа 


Одной функцией этого не сделать. Для этого нужна, хоть и небольшая, но концепция работы программы. Ведь нужно придумать, как этот компенсирующий ордер должен быть отмечен, чтобы было понятно, что он уже открыт и не требуется его повторное открытие. 
 
Ihor Herasko:
Одной функцией этого не сделать. Для этого нужна, хоть и небольшая, но концепция работы программы. Ведь нужно придумать, как этот компенсирующий ордер должен быть отмечен, чтобы было понятно, что он уже открыт и не требуется его повторное открытие. 

Компенсаторный ордер пометить магиком, равным тикету исходного ордера. Об этом написал выше

 
STARIJ:

Компенсаторный ордер пометить магиком, равным тикету исходного ордера. Об этом написал выше


Это одна функция? Нет. А я как раз об этом писал.

 
STARIJ:

Пара вопросов: 1) пробовали математически посчитать, может быть открытие компенсатора эквивалентно закрытию?  2) Если основной уйдет в + и будет закрыт, а компенсаторный уйдет в минус, то к нему снова нужен компенсатор?    Попробуйте в качестве магика для компенсатора номер основного ордера. Тогда найдя ордер с таким магиком будете знать о наличии компенсатора... Это предотвратит повтор


да, пробовал математически высчитать OrderOpenPrice() +/- L (L это расстояние когда нужно открывать компенсатор если перевалит на него), но у меня открывается на каждом баре ещё и ещё. так что эквивалентом не выходит. 

2. нее, компенсатор открывается только когда основной OrderProfit() <0   и цена открытия минус  L. далее если цена возвращается к основному ордеру, то компенсатор закрывается по безубытку. и тут у меня снова косяк- при прохождении цены с учетом L снова открывается компенсатор и так далее пока открытие возможны открывается и открывается компенсаторы и сами на себя.

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

так и делаю, у меня компенсатор с другим магигом. (или я не понял что имели в виду?)

 

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

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

 
dmitri58_mql5:

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

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

Посчитайте математически - закрыть ордер или открыть встречный компенсатор - это одно и то же.

Давайте рассмотрим ситуацию: у нас у обоих на счету 10 долларов. Спред для простоты равен 0.
Одновременно открываем BUY - совершаем покупку 0,01 лота.
Цена пошла вниз. В тот момент, когда цена ушла вниз на 50 пунктов
одновременно у меня закрываю позицию с убытком 50 пунктов,
а Вы открываете SELL 0,01 - ставите лок, замок, компенсатор, ...
У меня ордера отсутствуют, у Вас 2 встречных.
Куда бы цена ни ушла, у Вас суммарный убыток по двум ордерам 50 пунктов.
Чем Ваше положение лучше? У Вас 5 вариантов продолжить. В какой-то момент Вы можете:
1) одновременно закрыть оба ордера и мы сравняемся с убытком 50 пунктов.
2) Закрыть SELL. В этот момент открою BUY. Результат:
У нас у обоих открыта BUY, убыток те самые 50 пунктов.
Если цена идет вверх, хорошо, вниз - плохо. Позиции абсолютно равные.
3) Закрыть BUY. В этот момент открою SELL. Результат:
У нас у обоих открыта SELL, убыток те самые 50 пунктов.
Если цена идет вниз, хорошо, вверх - плохо. Позиции абсолютно равные.
4) Открыть еще одну SELL. В этот момент открою SELL. Результат:
У меня открыта SELL, у Вас SELL и еще два локированных ордера. Убыток те самые 50 пунктов.
Если цена идет вниз, хорошо, вверх - плохо. Позиции абсолютно равные.
5) Открыть еще одну BUY. В этот момент открою BUY. Результат:
У меня открыт BUY, у Вас BUY и еще два локированных ордера. Убыток те самые 50 пунктов.
Если цена идет вверх, хорошо, вниз - плохо. Позиции абсолютно равные.
Во всех вариантах финансовый результат одинаков.
Еще есть два варианта открытия встречного ордера с большим или меньшим лотом.
Они очевидны, их пропускаю
Если с этим согласны, можешь читать дальше.
Вроде бы доказал, что встречные, лок, замок - глупость.

А везде пишут, что надо. Противоречие.
Думал 5 лет и догадался, в чем смысл лока, замка, встречных ордеров, компенсаторов...

Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением...
 
STARIJ:  Посчитайте математически - закрыть ордер или открыть встречный компенсатор - это одно и то же.

А везде пишут, что надо. Противоречие.
Думал 5 лет и догадался, в чем смысл лока, замка, встречных ордеров, компенсаторов...

А вот это уже интересно!

 
STARIJ:

Посчитайте математически - закрыть ордер или открыть встречный компенсатор - это одно и то же.

Давайте рассмотрим ситуацию: у нас у обоих на счету 10 долларов. Спред для простоты равен 0.
Одновременно открываем BUY - совершаем покупку 0,01 лота.
Цена пошла вниз. В тот момент, когда цена ушла вниз на 50 пунктов
одновременно у меня закрываю позицию с убытком 50 пунктов,
а Вы открываете SELL 0,01 - ставите лок, замок, компенсатор, ...
У меня ордера отсутствуют, у Вас 2 встречных.
Куда бы цена ни ушла, у Вас суммарный убыток по двум ордерам 50 пунктов.
Чем Ваше положение лучше? У Вас 5 вариантов продолжить. В какой-то момент Вы можете:
1) одновременно закрыть оба ордера и мы сравняемся с убытком 50 пунктов.
2) Закрыть SELL. В этот момент открою BUY. Результат:
У нас у обоих открыта BUY, убыток те самые 50 пунктов.
Если цена идет вверх, хорошо, вниз - плохо. Позиции абсолютно равные.
3) Закрыть BUY. В этот момент открою SELL. Результат:
У нас у обоих открыта SELL, убыток те самые 50 пунктов.
Если цена идет вниз, хорошо, вверх - плохо. Позиции абсолютно равные.
4) Открыть еще одну SELL. В этот момент открою SELL. Результат:
У меня открыта SELL, у Вас SELL и еще два локированных ордера. Убыток те самые 50 пунктов.
Если цена идет вниз, хорошо, вверх - плохо. Позиции абсолютно равные.
5) Открыть еще одну BUY. В этот момент открою BUY. Результат:
У меня открыт BUY, у Вас BUY и еще два локированных ордера. Убыток те самые 50 пунктов.
Если цена идет вверх, хорошо, вниз - плохо. Позиции абсолютно равные.
Во всех вариантах финансовый результат одинаков.
Еще есть два варианта открытия встречного ордера с большим или меньшим лотом.
Они очевидны, их пропускаю
Если с этим согласны, можешь читать дальше.
Вроде бы доказал, что встречные, лок, замок - глупость.

А везде пишут, что надо. Противоречие.
Думал 5 лет и догадался, в чем смысл лока, замка, встречных ордеров, компенсаторов...


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

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

 
dmitri58_mql5:


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

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

вот и искусство  локирование есть

http://dewinforex.com/ru/osnovy-foreks/iskusstvo-lokirovaniia-gramotno-vykhodim-iz-zamka.html

Искусство локирования – грамотно выходим из замка
Искусство локирования – грамотно выходим из замка
  • 2016.02.17
  • Тарас Матвеев
  • dewinforex.com
Локирование – тактика, требующая опыта и немалой выдержки. Используется такой прием в случае, когда по открытой позиции (серии позиций) нарастает убыток и нужно удержать уровень маржи. Под локом (входом в замок) понимают заключение сделки, направленной в противоположную сторону по отношению к уже открытой сделке/группе сделок. Локирование может...