Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1431

 
mikhail2929 Кравченко #:

Хочу скачать на MQL5 бесплатные советники. Захожу в эксперты, потом в бесплатные. Вопрос: я могу использовать на реальном счете все советники находящиеся в разделе "бесплатные" или есть ограничения.  Если на советнике написано 

"уже куплен" его можно ставить на реальный счет или нет?

Добрый день! Если бесплатный советник скачан и есть информация, что он уже куплен, то можете его использовать. Вопрос в другом - насколько он надёжен? Для этого, перед использованием на реальном счёте, лучше всего провести тестирование советника!

С уважением, Владимир.

 
MrBrooklin #:

Добрый день! Если бесплатный советник скачан и есть информация, что он уже куплен, то можете его использовать. Вопрос в другом - насколько он надёжен? Для этого, перед использованием на реальном счёте, лучше всего провести тестирование советника!

С уважением, Владимир.

Спасибо Владимир. Я понимаю, что тестирование и оптимизация необходимы. Т.е. все советники помещенные в раздел "бесплатные" могут без ограничений скачиваться и устанавливаться для работы на реальном счете. Я правильно понял?

 
Добрый день, ищу помощи, при написании советника MT5, для модификации TP и SL использую класс CTrade. Проблема такая у позиции изначально выставляется TP и SL после TP изменяется но SL должен остаться на месте, при реализации получилось вот что :
 for(int i = 0; i <= PositionsTotal(); i++)
      if(a_position.SelectByIndex(i))
         if(a_position.Magic() == MagicNumber && a_position.Symbol() == a_symbol.Name())
            if(PositionGetString(POSITION_COMMENT) == Comment_2)
              {
                  if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY && PositionGetDouble(POSITION_TP) != TP_Buy)
                  a_trade.PositionModify(PositionGetInteger(POSITION_TICKET),PositionGetDouble(POSITION_SL),TP_Buy);

                  if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL && PositionGetDouble(POSITION_TP) != TP_Sell)
                  a_trade.PositionModify(PositionGetInteger(POSITION_TICKET),PositionGetDouble(POSITION_SL),TP_Sell);
              }

TP_Buy и TP_Sell считаются корректно. В тестере выдает ошибку 4756. CTrade::OrderSend: modify position #4 GBPUSD (sl: 1.35950, tp: 1.34860) [invalid stops] failed modify #4 sell 0.05 GBPUSD sl: 1.35950, tp: 1.34860 -> sl: 1.35950, tp: 1.34860 [Invalid stops]. Как я понимаю это ошибка выставления SL , скорее  всего ошибка из за того что SL находится в одном и том же месте. Но мне это и нужно. В справочнике по CTrade написано что "если изменение не нужно, предыдущее значение". Как побороть ошибку подскажите.  

 
mikhail2929 Кравченко #:

Спасибо Владимир. Я понимаю, что тестирование и оптимизация необходимы. Т.е. все советники помещенные в раздел "бесплатные" могут без ограничений скачиваться и устанавливаться для работы на реальном счете. Я правильно понял?

Вроде бы, уже раньше ответил на Ваш вопрос. Да, Вы правильно поняли.

С уважением, Владимир.

 
rexMetaL #:
Добрый день, ищу помощи, при написании советника MT5, для модификации TP и SL использую класс CTrade. Проблема такая у позиции изначально выставляется TP и SL после TP изменяется но SL должен остаться на месте, при реализации получилось вот что :

TP_Buy и TP_Sell считаются корректно. В тестере выдает ошибку 4756. CTrade::OrderSend: modify position #4 GBPUSD (sl: 1.35950, tp: 1.34860) [invalid stops] failed modify #4 sell 0.05 GBPUSD sl: 1.35950, tp: 1.34860 -> sl: 1.35950, tp: 1.34860 [Invalid stops]. Как я понимаю это ошибка выставления SL , скорее  всего ошибка из за того что SL находится в одном и том же месте. Но мне это и нужно. В справочнике по CTrade написано что "если изменение не нужно, предыдущее значение". Как побороть ошибку подскажите.  

Здравствуйте!

Для начала уберите знак равенства в цикле, чтобы было так:

for(int i = 0; i < PositionsTotal(); i++)

Дальше Ваш код не смотрел.

С уважением, Владимир.

 
MrBrooklin #:

Здравствуйте!

Для начала уберите знак равенства в цикле:

Дальше Ваш код не смотрел.

С уважением, Владимир.

Ничего не изменилось проблема конкретно в SL/TP 
 for(int i = 0; i < PositionsTotal(); i++)
      if(a_position.SelectByIndex(i))
         if(a_position.Magic() == MagicNumber && a_position.Symbol() == a_symbol.Name())
            if(PositionGetString(POSITION_COMMENT) == Comment_2)
              {
                  if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY && PositionGetDouble(POSITION_TP) != TP_Buy)
                  a_trade.PositionModify(PositionGetInteger(POSITION_TICKET),PositionGetDouble(POSITION_SL),TP_Buy);

                  if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL && PositionGetDouble(POSITION_TP) != TP_Sell)
                  a_trade.PositionModify(PositionGetInteger(POSITION_TICKET),PositionGetDouble(POSITION_SL),TP_Sell);
              }
 
MrBrooklin #:

Здравствуйте!

Для начала уберите знак равенства в цикле, чтобы было так:

Дальше Ваш код не смотрел.

С уважением, Владимир.

Благодарю за уделенное время проблема решилась простым округление SL/TP по инструменту. Ошибка была так как SL/TP ,брались с индикатора.

Спасибо.

 
mikhail2929 Кравченко #:

Спасибо Владимир. Я понимаю, что тестирование и оптимизация необходимы. Т.е. все советники помещенные в раздел "бесплатные" могут без ограничений скачиваться и устанавливаться для работы на реальном счете. Я правильно понял?

Лучше не делайте это :)

 

Привет всем,

Я новичок, поэтому надеюсь, что пишу в правильном месте: я пытаюсь написать советник, который мог бы помочь мне с управлением капиталом, например:

"закрывать все сделки, когда прошлые убытки+текущая просадка ниже x%" + "закрывать все сделки сразу до конца сессии/дня".

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

Спасибо, торгуйте на здоровье ;)

 
jeremy10p100 # :

Всем привет,

Я новичок, поэтому надеюсь, что пишу в правильном месте: я ищу код советника, который мог бы помочь мне в управлении деньгами, например:

"закрывать все сделки, когда прошлые убытки+текущая просадка ниже x%" + "закрывать все сделки сразу до конца сессии/дня".

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

Спасибо, торгуйте на здоровье ;)

Здравствуйте,

Попробуйте поискать готовые решения на рынке - https://www.mql5.com/fr/search#!keyword=money%20management&module=mql5_module_market

Вы также можете заказать индивидуальное решение у Freelance - https://www.mql5.com/fr/job.

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