if (cn==0 && PriceLowMA_Buy==true&& CorrectionTradeEntry==false)
{
if (Ask<maprice && maprice-Ask>=Value*Point)
if (OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "", Magic, 0, Blue)<0)
Print("Не удалось открыть ордер на покупку");
SendMail("EA BJH", "Не удалось открыть ордер на покупку");
if (Bid>maprice && Bid-maprice>=Value*Point)
if (OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "", Magic, 0, Red)<0)
Print("Не удалось открыть ордер на продажу");
SendMail("EA BJH", "Не удалось открыть ордер на продажу");
}
elseif (cn==0 && PriceLowMA_Buy==true && CorrectionTradeEntry==true&& MaPeriod>=40)
{
if (Ask<maprice && maprice-Ask>=Value*Point && iClose(Symbol(),0,5)<iClose(Symbol(),0,1)&& iClose(Symbol(),0,1)<Ask)
if (OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "", Magic, 0, Blue)<0)
Print("Не удалось открыть ордер на покупку");
SendMail("EA BJH", "Не удалось открыть ордер на покупку");
if (Bid>maprice && Bid-maprice>=Value*Point && iClose(Symbol(),0,5)>iClose(Symbol(),0,1) && iClose(Symbol(),0,1)>Bid)
if (OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "", Magic, 0, Red)<0)
Print("Не удалось открыть ордер на продажу");
SendMail("EA BJH", "Не удалось открыть ордер на продажу");
}
elseif (cn==0 && PriceLowMA_Buy==true && CorrectionTradeEntry==true&& MaPeriod>=30 && MaPeriod<40)
{
if (Ask<maprice && maprice-Ask>=Value*Point && iClose(Symbol(),0,4)<iClose(Symbol(),0,1)&& iClose(Symbol(),0,1)<Ask)
if (OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "", Magic, 0, Blue)<0)
Print("Не удалось открыть ордер на покупку");
SendMail("EA BJH", "Не удалось открыть ордер на покупку");
if (Bid>maprice && Bid-maprice>=Value*Point && iClose(Symbol(),0,4)>iClose(Symbol(),0,1) && iClose(Symbol(),0,1)>Bid)
if (OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "", Magic, 0, Red)<0)
Print("Не удалось открыть ордер на продажу");
SendMail("EA BJH", "Не удалось открыть ордер на продажу");
}
elseif (cn==0 && PriceLowMA_Buy==true && CorrectionTradeEntry==true&& MaPeriod>=20 && MaPeriod<30)
{
if (Ask<maprice && maprice-Ask>=Value*Point && iClose(Symbol(),0,3)<iClose(Symbol(),0,1)&& iClose(Symbol(),0,1)<Ask)
if (OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "", Magic, 0, Blue)<0)
Print("Не удалось открыть ордер на покупку");
SendMail("EA BJH", "Не удалось открыть ордер на покупку");
if (Bid>maprice && Bid-maprice>=Value*Point && iClose(Symbol(),0,3)>iClose(Symbol(),0,1) && iClose(Symbol(),0,1)>Bid)
if (OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "", Magic, 0, Red)<0)
Print("Не удалось открыть ордер на продажу");
SendMail("EA BJH", "Не удалось открыть ордер на продажу");
}
elseif (cn==0 && PriceLowMA_Buy==true && CorrectionTradeEntry==true&& MaPeriod>=10 && MaPeriod<20)
{
if (Ask<maprice && maprice-Ask>=Value*Point && iClose(Symbol(),0,2)<iClose(Symbol(),0,1)&& iClose(Symbol(),0,1)<Ask)
if (OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "", Magic, 0, Blue)<0)
Print("Не удалось открыть ордер на покупку");
SendMail("EA BJH", "Не удалось открыть ордер на покупку");
if (Bid>maprice && Bid-maprice>=Value*Point && iClose(Symbol(),0,2)>iClose(Symbol(),0,1) && iClose(Symbol(),0,1)>Bid)
if (OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "", Magic, 0, Red)<0)
Print("Не удалось открыть ордер на продажу");
SendMail("EA BJH", "Не удалось открыть ордер на продажу");
}
elseif (cn==0 && PriceLowMA_Buy==true && CorrectionTradeEntry==true&& MaPeriod<10)
{
if (Ask<maprice && maprice-Ask>=Value*Point)
if (OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "", Magic, 0, Blue)<0)
Print("Не удалось открыть ордер на покупку");
SendMail("EA BJH", "Не удалось открыть ордер на покупку");
if (Bid>maprice && Bid-maprice>=Value*Point)
if (OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "", Magic, 0, Red)<0)
Print("Не удалось открыть ордер на продажу");
SendMail("EA BJH", "Не удалось открыть ордер на продажу");
}
elseif (cn==0 && PriceLowMA_Buy==false && CorrectionTradeEntry==false)
{
if (Ask>maprice && Ask-maprice<=Value*Point)
if (OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "", Magic, 0, Blue)<0)
Print("Не удалось открыть ордер на покупку");
SendMail("EA BJH", "Не удалось открыть ордер на покупку");
if (Bid<maprice && maprice-Bid<=Value*Point)
if (OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "", Magic, 0, Red)<0)
Print("Не удалось открыть ордер на продажу");
SendMail("EA BJH", "Не удалось открыть ордер на продажу");
}
elseif (cn==0 && PriceLowMA_Buy==false && CorrectionTradeEntry==true&& MaPeriod>=40)
{
if (Ask>maprice && Ask-maprice<=Value*Point && iClose(Symbol(),0,5)<iClose(Symbol(),0,1) && iClose(Symbol(),0,1)<Ask)
if (OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "", Magic, 0, Blue)<0)
Print("Не удалось открыть ордер на покупку");
SendMail("EA BJH", "Не удалось открыть ордер на покупку");
if (Bid<maprice && maprice-Bid<=Value*Point && iClose(Symbol(),0,5)>iClose(Symbol(),0,1) && iClose(Symbol(),0,1)>Bid)
if (OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "", Magic, 0, Red)<0)
Print("Не удалось открыть ордер на продажу");
SendMail("EA BJH", "Не удалось открыть ордер на продажу");
}
elseif (cn==0 && PriceLowMA_Buy==false && CorrectionTradeEntry==true&& MaPeriod>=30 && MaPeriod<40)
{
if (Ask>maprice && Ask-maprice<=Value*Point && iClose(Symbol(),0,4)<iClose(Symbol(),0,1) && iClose(Symbol(),0,1)<Ask)
if (OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "", Magic, 0, Blue)<0)
Print("Не удалось открыть ордер на покупку");
SendMail("EA BJH", "Не удалось открыть ордер на покупку");
if (Bid<maprice && maprice-Bid<=Value*Point && iClose(Symbol(),0,4)>iClose(Symbol(),0,1) && iClose(Symbol(),0,1)>Bid)
if (OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "", Magic, 0, Red)<0)
Print("Не удалось открыть ордер на продажу");
SendMail("EA BJH", "Не удалось открыть ордер на продажу");
}
elseif (cn==0 && PriceLowMA_Buy==false && CorrectionTradeEntry==true&& MaPeriod>=20 && MaPeriod<30)
{
if (Ask>maprice && Ask-maprice<=Value*Point && iClose(Symbol(),0,3)<iClose(Symbol(),0,1) && iClose(Symbol(),0,1)<Ask)
if (OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "", Magic, 0, Blue)<0)
Print("Не удалось открыть ордер на покупку");
SendMail("EA BJH", "Не удалось открыть ордер на покупку");
if (Bid<maprice && maprice-Bid<=Value*Point && iClose(Symbol(),0,3)>iClose(Symbol(),0,1) && iClose(Symbol(),0,1)>Bid)
if (OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "", Magic, 0, Red)<0)
Print("Не удалось открыть ордер на продажу");
SendMail("EA BJH", "Не удалось открыть ордер на продажу");
}
elseif (cn==0 && PriceLowMA_Buy==false && CorrectionTradeEntry==true&& MaPeriod>=10 && MaPeriod<20)
{
if (Ask>maprice && Ask-maprice<=Value*Point && iClose(Symbol(),0,2)<iClose(Symbol(),0,1) && iClose(Symbol(),0,1)<Ask)
if (OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "", Magic, 0, Blue)<0)
Print("Не удалось открыть ордер на покупку");
SendMail("EA BJH", "Не удалось открыть ордер на покупку");
if (Bid<maprice && maprice-Bid<=Value*Point && iClose(Symbol(),0,2)>iClose(Symbol(),0,1) && iClose(Symbol(),0,1)>Bid)
if (OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "", Magic, 0, Red)<0)
Print("Не удалось открыть ордер на продажу");
SendMail("EA BJH", "Не удалось открыть ордер на продажу");
}
elseif (cn==0 && PriceLowMA_Buy==false && CorrectionTradeEntry==true&& MaPeriod<10)
{
if (Ask>maprice && Ask-maprice<=Value*Point)
if (OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "", Magic, 0, Blue)<0)
Print("Не удалось открыть ордер на покупку");
SendMail("EA BJH", "Не удалось открыть ордер на покупку");
if (Bid<maprice && maprice-Bid<=Value*Point)
if (OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "", Magic, 0, Red)<0)
Print("Не удалось открыть ордер на продажу");
SendMail("EA BJH", "Не удалось открыть ордер на продажу");
}
Вот такой блок теперь входа в торговлю. Кстати я ошибки здесь исправил, а где то дополнил немного (см. жёлтый цвет). Кто загружал советника - перезагрузите через 10 минут после времени выхода комментария. Ещё раз спасибо, нашли сразу две ошибки!!! Есть программист который помогает оптимизировать код, но я ещё не успел получить комментарии просто от него.
Ну вроде работает - правда я на рабочих настройках проверил и на режиме торговли на волатильности.
нет коррекции тест№1
с коррекцией тест№1
нет коррекции тест№2
с коррекцией тест№2
Два теста на EURUSD с 19.01.2017 по 21.05.2017 на режиме торговли по волатильности (PriceLowMA_Buy=true;)
Здесь видно что за счёт осторожности (ожидания советником "корректного" входа) совершено меньше сделок. Ну естественно, время то не ждёт! Думаю коррекция более убедительна при режиме PriceLowMA_Buy=false; а также при одно-ордерной торговле. Здесь при таком изначально выгодном режиме торговли по волатильности коррекция наоборот уменьшила прибыль. Ну хоть слива нет, спасибо и на том))) А одно-ордерная система торговли тоже есть в советнике. Тестируйте, пишите если что. Спасибо за помощь. Советник обновлён.
geratdc: Вот такой блок теперь входа в торговлю. Кстати я ошибки здесь исправил, а где то дополнил немного (см. жёлтый цвет). Кто загружал советника - перезагрузите через 10 минут после времени выхода комментария. Ещё раз спасибо, нашли сразу две ошибки!!! Есть программист который помогает оптимизировать код, но я ещё не успел получить комментарии просто от него.
А почему вы используете функцию iClose(Symbol(),0,5)? Разве в вашей ситуации не проще использавать Close[5]? Вы же читаете текущую пару а не какую-нибудь связаную...
Maksim Neimerik: А почему вы используете функцию iClose(Symbol(),0,5)? Разве в вашей ситуации не проще использовать Close[5]? Вы же читаете текущую пару а не какую-нибудь связанную...
Приветствую, объясните пожалуйста что за массив? Как он работает? Может поэтому я это не применял - по незнанию просто. Там видите я вчера ошибки исправил - пришлось условие выставлять по поводу MaPeriod - когда мапериод = 2 то некорректно работал советник, точнее советник не работал))). Сегодня устранял недочёт.
Если у вас с учётом новой информации идея по поводу массива в силе - сделайте пожалуйста на досуге и прикрепите сюда вашу версию решения коррекции входа с Moving Average. Посмотрим, потестим и пойдёт в советник. Вы можете загрузить всё по ссылке - там инструкция и настройки по тестам - не факт что у вас заработают так как при смене периодов котировок советник по старым настройкам спотыкаться начинает. В июне меня не будет, но как-только так сразу загляну. Успехов,
Ну вроде работает - правда я на рабочих настройках проверил и на режиме торговли на волатильности.
Два теста на EURUSD с 19.01.2017 по 21.05.2017 на режиме торговли по волатильности (PriceLowMA_Buy=true;)
Здесь видно что за счёт осторожности (ожидания советником "корректного" входа) совершено меньше сделок. Ну естественно, время то не ждёт! Думаю коррекция более убедительна при режиме PriceLowMA_Buy=false; а также при одно-ордерной торговле. Здесь при таком изначально выгодном режиме торговли по волатильности коррекция наоборот уменьшила прибыль. Ну хоть слива нет, спасибо и на том))) А одно-ордерная система торговли тоже есть в советнике. Тестируйте, пишите если что. Спасибо за помощь. Советник обновлён.
Вот такой блок теперь входа в торговлю. Кстати я ошибки здесь исправил, а где то дополнил немного (см. жёлтый цвет). Кто загружал советника - перезагрузите через 10 минут после времени выхода комментария. Ещё раз спасибо, нашли сразу две ошибки!!! Есть программист который помогает оптимизировать код, но я ещё не успел получить комментарии просто от него.
А почему вы используете функцию iClose(Symbol(),0,5)? Разве в вашей ситуации не проще использовать Close[5]? Вы же читаете текущую пару а не какую-нибудь связанную...
Приветствую, объясните пожалуйста что за массив? Как он работает? Может поэтому я это не применял - по незнанию просто. Там видите я вчера ошибки исправил - пришлось условие выставлять по поводу MaPeriod - когда мапериод = 2 то некорректно работал советник, точнее советник не работал))). Сегодня устранял недочёт.
Если у вас с учётом новой информации идея по поводу массива в силе - сделайте пожалуйста на досуге и прикрепите сюда вашу версию решения коррекции входа с Moving Average. Посмотрим, потестим и пойдёт в советник. Вы можете загрузить всё по ссылке - там инструкция и настройки по тестам - не факт что у вас заработают так как при смене периодов котировок советник по старым настройкам спотыкаться начинает. В июне меня не будет, но как-только так сразу загляну. Успехов,
https://yadi.sk/d/MyYzRSja3JQVWK