Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Хочешь изучить язык MQL5? 300 статей помогут тебе!
Automated-Trading
Админ
97632
Automated-Trading 2013.09.18 08:37 

MA:

Очень простой советник, работающий на пересечении двух Moving Average.

MA_Expert_Advisor

Автор: Игорь Чугай

ultrask
28
ultrask 2013.09.20 21:14  
какой тф и пары?
Igor Chugay
2321
Igor Chugay 2013.09.21 19:46  

usdjpy

m15 

стоп 375 

тейк 530

ма 49 

ма1 99

(пятизнак) 

andreewwleonid
7
andreewwleonid 2013.09.22 04:31  

     Здравствуйте. Увидел на Вашем сайте любопытный советник МА.mq5. Честно признаюсь, меня подкупили простота расчетов, наличие стоплосса и тейкпрофита, простота настроек и маленький размер файла. Немаловажное значение в моем выборе сыграло и то, что он распространяется бесплатно. Я не умею программировать, но порадовался обилию русскоязычных комментариев практически к каждой строке кода.

     Немедленно скачал это чудо и решил протестировать на MetaTrader 5 на паре EURUSD. Но тут меня постигло некоторое разочарование:

     1) советник лихо слил депозит в 10000 USD менее чем за неделю исторического внемени, причем сделал это на всех таймфремах – М1, М5, М15, Н1;

     2) заявленный стоплосс присутствовал в строке, но не присутствовал на графике и не исполнялся, даже если прибыль достигала величины – 1000 USD;

     3) так же себя вел и тейкпрофит: он честно прописывался в строке, но отсутствовал на графике и, соответственно, не выполнялся.

     Понятное дело, что дареному коню смотреть в зубы не принято, но, тем не менее, в связи с этим у меня возник ряд вопросов, которые я адресую Вам:

     1) перед публичным размещением эта программа тестировалась на Вашей фирме или нет;

     2) не подрывает ли Ваша фирма свой авторитет размещением неработающих версий программ (я почему-то думаю, что этот случай не единственный);

     3) можно ли надеяться что на раздаче появится бесплатная рабочая версия этой программы или ее функциональный аналог?

     Прошу прощения за доставляемые хлопоты и надеюсь на долговременное сотрудничество, тем более, что Ваша компания – монополист программ для MetaTrader 5.

Artyom Trishkin
Модератор
73957
Artyom Trishkin 2013.09.22 07:35  
andreewwleonid:

     Здравствуйте. Увидел на Вашем сайте любопытный советник МА.mq5. Честно признаюсь, меня подкупили простота расчетов, наличие стоплосса и тейкпрофита, простота настроек и маленький размер файла. Немаловажное значение в моем выборе сыграло и то, что он распространяется бесплатно. Я не умею программировать, но порадовался обилию русскоязычных комментариев практически к каждой строке кода.

     Немедленно скачал это чудо и решил протестировать на MetaTrader 5 на паре EURUSD. Но тут меня постигло некоторое разочарование:

     1) советник лихо слил депозит в 10000 USD менее чем за неделю исторического внемени, причем сделал это на всех таймфремах – М1, М5, М15, Н1;

     2) заявленный стоплосс присутствовал в строке, но не присутствовал на графике и не исполнялся, даже если прибыль достигала величины – 1000 USD;

     3) так же себя вел и тейкпрофит: он честно прописывался в строке, но отсутствовал на графике и, соответственно, не выполнялся.

     Понятное дело, что дареному коню смотреть в зубы не принято, но, тем не менее, в связи с этим у меня возник ряд вопросов, которые я адресую Вам:

     1) перед публичным размещением эта программа тестировалась на Вашей фирме или нет;

     2) не подрывает ли Ваша фирма свой авторитет размещением неработающих версий программ (я почему-то думаю, что этот случай не единственный);

     3) можно ли надеяться что на раздаче появится бесплатная рабочая версия этой программы или ее функциональный аналог?

     Прошу прощения за доставляемые хлопоты и надеюсь на долговременное сотрудничество, тем более, что Ваша компания – монополист программ для MetaTrader 5.

1. У вас сколько знаков после запятой в котировках? 4 или 5 ? Я вижу, что заявленные тейки и стопы озвучены для пятизначных котировок. Если у вас котировки четырёхзначные, уменьшите в десять раз заявленные размеры тейка и стопа.

2. Вы описываете свою прибыль в валюте депозита (1000 usd), а размеры стоп-приказов озвучены в пунктах. Вовсе необязательно, что и 1000 долларов прибыли будут больше в пунктах, чем размер тейка в пунктах - тут всё от лота зависит.

Igor Konyashin
3108
Igor Konyashin 2013.09.22 13:44  

andreewwleonid:


А комментарии выше почему не читаете? Там же автор указал какая пара, какой таймфрейм и т.д.
Mikhail Vdovin
1220
Mikhail Vdovin 2013.09.23 11:31  
//--- для работы с брокерами, использующими 5-ти значные котировки,
//--- умножаем на 10 значения SL и TP
   STP = StopLoss;
   TKP = TakeProfit;
   if(_Digits==5 || _Digits==3)
     {
      STP = STP*10;
      TKP = TKP*10;
     }


исходя из этого участка кода можно предположить, что сов расчитан как на 5-и значных брокеров так и на 4-х значных. Более того, ТП и СЛ устанавливаются в величинах для 4-х знака, и при необходимости пересчитываются.

В целом, конечно, можно лишь посоветовать andreewwleonid не загружать всё подряд и не запуска без разбора первое попавшееся под руку....

andreewwleonid
7
andreewwleonid 2013.09.24 19:25  

       Ребята, вы-то чего вкупились? Понятно было бы, если бы рвать рубаху на груди вышел автор: «Кто это посмел поливать грязью произведение моего искусства?!!» Тем более что хороший советник может торговать на разных парах с котировками одного порядка и разных таймфремах. Правда с разной доходностью и индивидуальными настройками на каждую пару. Я не прав?

       Итак, еще раз все по порядку.

       1) Советник был поставлен на тестирование на пару EURUSD с депозитом 10000 USD и историю с 4-мя знаками.

       2) Установки были приняты зашитые в программу:

//--- input parameters

input int      StopLoss=100;

input int      TakeProfit=100;

input int      MA_Period=57;

input int      MA_Period1=3;

input int      EA_Magic=12345;

input double   Lot=1.0;

       3) Испытание проходило на нескольких таймфремах (М1, М5, М15, Н1). Понятное дело, что на минутке вряд ли кто торгует, но тем не менее…

      4) Стоплосс не индицировался на графике и не исполнялся.

      5) Тейкпрофит не индицировался на графике  и не исполнялся.

      6) Слив депозита происходил в среднем за неделю исторического времени.

      Кстати, в инструкции, которую я,  по мнению I Logic, якобы не изучил, действительно приведены параметры для пары USDJPY,

но они кардинально отличаются от программных.

      Я не программист, но читать программы умею. Хвала урокам информатики в школе, где познакомили с Бейсиком. Разбираю текст.

 

//--- для работы с брокерами, использующими 5-ти значные котировки,

//--- умножаем на 10 значения SL и TP

   STP = StopLoss;

   TKP = TakeProfit;

   if(_Digits==5 || _Digits==3)

     {

      STP = STP*10;

      TKP = TKP*10;

     }

   return(0);

 

Этот фрагмент по справедливому мнению micle позволяет программе вполне благополучно работать и на 4-х, и на 5-ти значных котировках.

      Этот фрагмент вычисляет  sl и tp в ордере на покупку:

 

         mrequest.action = TRADE_ACTION_DEAL;                                  // немедленное исполнение

         mrequest.price = NormalizeDouble(latest_price.ask,_Digits);           // последняя цена ask

         mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits); // Stop Loss

         mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Digits); // Take Profit

         mrequest.symbol = _Symbol;                                            // символ

         mrequest.volume = Lot;                                                // количество лотов для торговли

         mrequest.magic = EA_Magic;                                            // Magic Number

         mrequest.type = ORDER_TYPE_BUY;                                       // ордер на покупку

         mrequest.type_filling = ORDER_FILLING_FOK;                            // тип исполнения ордера - все или ничего

         mrequest.deviation=100;                                               // проскальзывание от текущей цены

 

       Этот фрагмент вычисляет sl и tp в ордере на продажу:

 

         mrequest.action = TRADE_ACTION_DEAL;                                  // немедленное исполнение

         mrequest.price = NormalizeDouble(latest_price.bid,_Digits);           // последняя цена Bid

         mrequest.sl = NormalizeDouble(latest_price.bid + STP*_Point,_Digits); // Stop Loss

         mrequest.tp = NormalizeDouble(latest_price.bid - TKP*_Point,_Digits); // Take Profit

         mrequest.symbol = _Symbol;                                            // символ

         mrequest.volume = Lot;                                                // количество лотов для торговли

         mrequest.magic = EA_Magic;                                            // Magic Number

         mrequest.type= ORDER_TYPE_SELL;                                       // ордер на продажу

         mrequest.type_filling = ORDER_FILLING_FOK;                            // тип исполнения ордера - все или ничего

         mrequest.deviation=100;                                               // проскальзывание от текущей цены

 

      По крайней мере так сказано в комментариях.

      Но, грамотеи, пожалуйста, покажите мне номер строки, где STP, sl и TKP, tp сравниваются с текущей котировкой (или котировкой закрытия бара) и делается выбор – закрыть позицию с убытком (прибылью) в 100 пунктов или держать ее дальше. Я этого не увидел. Я увидел, что открытие и закрытие позиции определяется отношениями МА и величиной остатка депозита, но никак не наличием стоплосса и тейкпрофита.

      Теперь встает законный вопрос: «Кто держит меня за лоха – автор неработающей программы или хозяева сайта, предлагающие посетителям неработающую программу?»

      И еще, micle, я благодарю Вас за совет не загружать все подряд и не запускать без разбора первое попавшееся под руку. Есть хорошая английская пословица: «Чтобы узнать вкус пудинга надо его съесть». Я попробовал этот пудинг и заработал несварение желудка. Но проблема в том, что я не программист и пока еще не изучил 4300 страниц справочника по MQL5, а потому просто вынужден использовать и изучать программы других людей. И по-человечески очень обидно, когда вместо нормально функционирующего продукта попадается откровенное … .

      Я понимаю, что ни один здравомыслящий трейдер не выложит для всеобщего доступа советник, реализующий торговую стратегию, которая его кормит. И не потому что он такой жадный, а просто если значительное число людей будет торговать единообразно, строем, то рынок тут же поменяет свойства, и стратегия либо станет менее прибыльной, либо вообще начнет приносить убытки. Тогда ему все придется начинать сначала. Но рассматривать данный советник как реализацию прибыльной торговой стратегии просто смешно. Согласны? Это скорее просто вариант учебного примера на тему «Как самому построить и настроить простейший работающий советник», к сожалению выполненный двоечником. 

Aliaksandr Yemialyanau
3461
Aliaksandr Yemialyanau 2013.09.25 08:27  
andreewwleonid:

      Но, грамотеи, пожалуйста, покажите мне номер строки, где STP, sl и TKP, tp сравниваются с текущей котировкой (или котировкой закрытия бара) и делается выбор – закрыть позицию с убытком (прибылью) в 100 пунктов или держать ее дальше. Я этого не увидел. 

В этих строках указываются значения SL и TP:

mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Digits); // Take Profit

Затем ордер отправляется брокеру:

OrderSend(mrequest,mresult);

SL и TP исполняются на стороне брокера, так что в программе не надо "sl и tp сравнивать с текущей котировкой"

-----------------------------

 

Наверное советник неправильно работает, потому что на вашем счёте - Исполнение по рынку (Market Execution), а советник написан под - Немедленное исполнение (Instant Execution).

andreewwleonid
7
andreewwleonid 2013.09.25 11:09  

       Здравствуйте, уважаемый сэр nasdaq. Приятно получить консультацию специалиста. На счет ордеров понятно. Значит, автор чтобы не загружать программу и график не стал рисовать эти две прямые. Хорошо. Но программу я запускал на Strategy Tester Visualization, или по-русски на тестере стратегий, MT5. Будьте любезны, если не трудно, подскажите пожалуйста в каком режиме эта утилита тестирует советники: Market Execution или Instant Execution и можно ли изменить эту настройку.

Igor Konyashin
3108
Igor Konyashin 2013.09.25 11:20  
andreewwleonid:

       в каком режиме эта утилита тестирует советники: Market Execution или Instant Execution и можно ли изменить эту настройку.

Каков тип исполнения на подключенном счете (а точнее символе), в таком и тестирует.
/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий