Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1851

 
Mihail Matkovskij #:

Но увеличивает риск. Как и Мартин, как и усреднение и другие подобные стратегии. Хотя, всё можно использовать с умом тем кто разбирается.

Наоборот, риск снижает. Здесь нужно примерно правильно выбрать хеджирующий актив, и можно спокойно спать. А вот с усреднением - сон частенько нарушен.

 
Mihail Matkovskij #:

Смотря какой лот с какой прибылью... Думаю, что лучше отсортировать позиции по прибыли. И первыми закрывать самые "жирные"!

смотря для чего :-) для рисования красивой кривой в сигналах и задрания "фактора восстановления" как раз таки нет..

 
Vitaly Muzichenko #:

Наоборот, риск снижает. Здесь нужно примерно правильно выбрать хеджирующий актив, и можно спокойно спать. А вот с усреднением - сон частенько нарушен.

А.. так для этого нужен еще дополнительный актив? Интересно... Похоже на диверсификацию риска/убытков...

А я всегда считал, что хеджирование, это противоположные позиции на одном инструменте.

 
Mihail Matkovskij #:

А.. так для этого нужен еще дополнительный актив? Интересно... Похоже на диверсификацию риска/убытков...

А я всегда считал, что хеджирование, это противоположные позиции на одном инструменте.

Это локирование, от слова lock (замок)

 
Tretyakov Rostyslav #:
Проверяй

Доброе утро Ростислав!!!

Не могли бы Вы прокомментировать вчерашние изменения не могу понять их логику 

//-------------------------------------------------------------------+
   Spread       = MarketInfo(Symbol(),MODE_SPREAD)*Point;
   MinLot       = MarketInfo(Symbol(),MODE_MINLOT);
   Balance      = AccountInfoDouble(ACCOUNT_BALANCE);
   FreeMargin   = AccountInfoDouble(ACCOUNT_MARGIN_FREE);
   avg_buy      = ObjectGetDouble(0,"AveragePriceLine0",OBJPROP_PRICE);
   avg_sell     = ObjectGetDouble(0,"AveragePriceLine1",OBJPROP_PRICE);
   Drawdown     = (Balance - FreeMargin)/Balance*100;
//-------------------------------------------------------------------+  Команда на удаление линий отображающую среднюю цену и текста
   if(CountTrade() == 0)
     {
      flag_close=0;
      ObjectsDeleteAll(0,"AveragePriceLine");
      if(ObjectFind(0,"signal4")==0&&CountTrade(0)<1)//для бай
        {
         ObjectDelete(0,"signal4");
        }
      if(ObjectFind(0,"signal3")==0&&CountTrade(1)<1)//для селл
        {
         ObjectDelete(0,"signal3");
        }
     }


 

 
EVGENII SHELIPOV #:

Доброе утро Ростислав!!!

Не могли бы Вы прокомментировать вчерашние изменения не могу понять их логику 


 

Если нет открытых ордеров flag_close получит "0"

   if(CountTrade() == 0)
     {
      flag_close=0;

Когда flag_close=0; запрос к  ClosseAll() прекращается

 
Tretyakov Rostyslav #:

Если нет открытых ордеров flag_close получит "0"

Когда flag_close=0; запрос к  ClosseAll() прекращается

Да это я понял 

Зачем это нужно  при удалении объектов.

А самое интересное если в этом месте блокировать флаг то советник начинает чудить 

 
EVGENII SHELIPOV #:

Да это я понял 

Зачем это нужно  при удалении объектов.

А самое интересное если в этом месте блокировать флаг то советник начинает чудить 

При чем здесь удаление объектов

это определение отсутствия ордеров

   if(CountTrade() == 0)
     {
      flag_close=0;
      ObjectsDeleteAll(0,"AveragePriceLine");
      if(ObjectFind(0,"signal4")==0&&CountTrade(0)<1)//для бай
        {
         ObjectDelete(0,"signal4");
        }
      if(ObjectFind(0,"signal3")==0&&CountTrade(1)<1)//для селл
        {
         ObjectDelete(0,"signal3");
        }
     }

а внутри можешь проводить любые операции для которых требуется отсутствие ордеров

кроме того в этом участке кода много лишнего,

этот вариант будет выполнять тоже самое, что и предыдущий

   if(CountTrade() == 0)
     {
      flag_close=0;
      ObjectsDeleteAll(0,"AveragePriceLine");
      ObjectDelete(0,"signal4");
      ObjectDelete(0,"signal3");
     }
 
Tretyakov Rostyslav #:

При чем здесь удаление объектов

это определение отсутствия ордеров

а внутри можешь проводить любые операции для которых требуется отсутствие ордеров

кроме того в этом участке кода много лишнего,

этот вариант будет выполнять тоже самое, что и предыдущий

Ростислав мне это понятно 

Мне  не понятно почему если я блокирую флаг внутри этой функции советник начинает открывать и закрывать за  раз 100-200 ордеров 

 
Vitaly Muzichenko #:

Это локирование, от слова lock (замок)

Да. Но замок открывается с одинаковым лотом. И два разнонаправленных ордера открываются одновременно. А хеджирование, это когда сделка вошла в просадку, а трейдер открывает позицию с бОльшим лотом в том же направлении (с разными направлениями я перепутал) подразумевая что цена развернется, чтобы получить прибыль на сделке с бОльшим лотом и перекрыть убыток сделки с меньшим лотом или усредняться до 0. Если что-то перепутал, то поправьте меня.

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