Doveman Опубликовано 26 марта, 2015 Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 26 марта, 2015 Похоже, тут ошибка, из-за которой первый ордер не всегда закрывается при обратном пересечении ББ2. Мы должны сравнивать закрытие позапрошлой свечи не с уровнем ББ2 на момент закрытия прошлой свечи (HighBB2 и LowBB2), а с уровнем ББ2 на момент закрытия позапрошлой свечи. Спойлер if(OrdExist(OP_BUY)>0&&Close2>HighBB2&&Close1 { signal=3; DrawFlag(2); EAComment(" Сигнал на выход из покупки обнаружен."); }if(OrdExist(OP_SELL)>0&&Close2LowBB2) { signal=-3; DrawFlag(-2); EAComment(" Сигнал на выход из продажи обнаружен."); }return(signal); 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Rabblerouser Опубликовано 26 марта, 2015 Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 26 марта, 2015 Похоже, тут ошибка... Кстати да, значение BBands(30, 2) должно соответствовать свече с которой его сравнивают.К тому же (для покупок) свеча с закрытием выше и свеча с закрытием ниже верхней линии BBands(30, 2) не обязаны идти последовательно, между ними могут быть 1-2 свечи! Ссылка на сообщение Поделиться на другие сайты More sharing options...
Doveman Опубликовано 26 марта, 2015 Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 26 марта, 2015 К тому же (для покупок) свеча с закрытием выше и свеча с закрытием ниже верхней линии BBands(30, 2) не обязаны идти последовательно, между ними могут быть 1-2 свечи! Идея в том, что закрытие одной свечи выше, а следующей за ней ниже ББ2 - это обязательное и достаточное условие того, что цена пересекла ББ2 сверху вниз.Так что условие нормальное, но реализовано с ошибкой. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Silentspec Опубликовано 26 марта, 2015 Автор Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 26 марта, 2015 Silentspec, я правильно понимаю, что при ExtremumControl=true и Extremum=5 он тут входить не должен? Спойлер Оба ордера закрылись по стопу, хотя по идее один должен был закрыться раньше, как только свеча закрылась выше ББ2. Конечно, фразу из описания "следующая за ней" можно понимать двояко (сразу за ней, или просто когда-нибудь), но идеологически правильно, чтобы было важно, что цена вышла за пределы ББ2, а потом вернулась. Во всяком случае для покупок именно такое наблюдается. Спойлер Нет, должен входить. Сигнальная свеча может касаться ББ. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Doveman Опубликовано 26 марта, 2015 Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 26 марта, 2015 (изменено) Silentspec, я правильно понимаю, что при ExtremumControl=true и Extremum=5 он тут входить не должен? Спойлер Оба ордера закрылись по стопу, хотя по идее один должен был закрыться раньше, как только свеча закрылась выше ББ2. Конечно, фразу из описания "следующая за ней" можно понимать двояко (сразу за ней, или просто когда-нибудь), но идеологически правильно, чтобы было важно, что цена вышла за пределы ББ2, а потом вернулась. Во всяком случае для покупок именно такое наблюдается. Спойлер Нет, должен входить. Сигнальная свеча может касаться ББ. А как же: Цитата 2. Цена находится в пределах ББ с токлонением 1 и центральной линии, при этом лои Extremum свечей подряд не касаются центральной линии (отключается ExtremumControl). Добавлено: 27-03-2015 12:34:39Продолжаем изучение кода.Я правильно понимаю, что в этой части есть условие, что если ExtremumContr(1)=FALSE, сигнал на вход не появится? Спойлер // Сигнал в покупку, если нет никаких ордеровif(!MaxRisk()&&OrdExist(100)==0&&OrdExist(-100)==0&&High2>High1&&Low2>Low1&&Close1>Low1+0.5*(High1-Low1)&&Close1MiddleBB&&!ExtremumContr(1)&&High1-Low1 { signal=1; DrawFlag(1); EAComment(" Сигнал в покупку обнаружен."); } Смотрим часть, где ExtremumContr(1) присваивается значение Спойлер //+------------------------------------------------------------------+//| Highs Control |//+------------------------------------------------------------------+// Возвращает тру, если хаем или лоем задета средняя линия боллинджера// dir=1 для покупок, dir=-1 для продажbool ExtremumContr(int dir){if(!ExtremumControl) return(false); // Если отключен, возвращает фэлсdouble MiddleBB;for (int i=2;i { MiddleBB=iBands(Symbol(),Period(),BBPeriod,1,0,0,0,Extremum); if(dir==-1&&High>MiddleBB) return(true); // Если задели, вернем тру if(dir==1&&Low }return(false); // Если не задели, вернем фэлс} А вот тут, похоже, ошибка. По идее он должен сравнивать High (для продаж) c MiddleBB. Вместо этого производится сравнение каждого High с единственным уровнем MiddleBB Extremum свечей назад. Изменено 27 марта, 2015 пользователем Doveman 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Blyamchik Опубликовано 21 апреля, 2015 Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 21 апреля, 2015 (изменено) Я так понимаю, что сова иногда не выставляете с/л. Кто как с этим справляется?)Пардон, все выставил. Это у меня с терпением проблемы image.jpg Изменено 21 апреля, 2015 пользователем Blyamchik 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Старик Опубликовано 21 апреля, 2015 Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 21 апреля, 2015 Blyamchik, еще бы понять где вы сначала не увидели, а потом увидели выставление с/л...Вы о стопе ордера или о стоповых отложках? Ссылка на сообщение Поделиться на другие сайты More sharing options...
Blyamchik Опубликовано 21 апреля, 2015 Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 21 апреля, 2015 (изменено) Blyamchik, еще бы понять где вы сначала не увидели, а потом увидели выставление с/л...Вы о стопе ордера или о стоповых отложках? Я о стоп лоссе. После срабатывания стоп ордера, стоп лос не был выставлен. Спустя несколько часов сова стоплосс выставила. Так что вроде бы, все впорядке :d Изменено 21 апреля, 2015 пользователем Blyamchik Ссылка на сообщение Поделиться на другие сайты More sharing options...
Старик Опубликовано 21 апреля, 2015 Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 21 апреля, 2015 Вообще-то в отложках стоп можно задавать для любого типа счета в момент выставления отложки до её активации.И пауза в выставлении стопа в несколько часов после активации отложки - это совершенно не порядок, а явная недоработка. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Blyamchik Опубликовано 21 апреля, 2015 Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 21 апреля, 2015 Судя по логам, стоплосс выставился на следующей свече. image.jpg Ссылка на сообщение Поделиться на другие сайты More sharing options...
Старик Опубликовано 21 апреля, 2015 Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 21 апреля, 2015 В принципе, понятно почему.Но 4 часа без стопа на нынешнем рынке... 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
kkirs Опубликовано 28 апреля, 2015 Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 28 апреля, 2015 Было замечено, что данный недочет распространяется только на ордера sellstop. Выяснил почему - при вызове OrderSend() для позиций на продажу в качестве аргумента для стоплоса передавался 0, в отличие от покупок.Поправил, кому нужно прикладываю. Milky_way_EA_v3.00.mq4Milky_way_EA_v3.00.ex4 9 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Doveman Опубликовано 28 апреля, 2015 Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 28 апреля, 2015 Было замечено, что данный недочет распространяется только на ордера sellstop. Выяснил почему - при вызове OrderSend() для позиций на продажу в качестве аргумента для стоплоса передавался 0, в отличие от покупок.Поправил, кому нужно прикладываю. Вы не могли бы исправить остальные ошибки, которые выше нашли в коде? А то автор забил на сова :(( Правда тогда и сеты придется новые создавать... Ссылка на сообщение Поделиться на другие сайты More sharing options...
kkirs Опубликовано 28 апреля, 2015 Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 28 апреля, 2015 (изменено) Проверю завтра кодНу ошибок в коде, по крайней мере явных, я не нашел... Почему в функции OpenOrder отложка на продажу ставится на максимальный лоу? Спойлер void OpenOrder (int direction){ double OpenPrice = 0, StopLoss = 0, Lot = 0, SL = 0; if (direction == OP_SELL) { OpenPrice = MathMax(MathMax(Low[3], Low[4]), MathMax(Low[2], Low[1])); ^--- Максимальный лоу? И почему бы не использовать iHighest? //NormalizeDouble(Low[1]-OtstupOtlozhka*Point,Digits()); StopLoss = SL(OpenPrice, OP_SELL); SL = NormalizeDouble((StopLoss - OpenPrice) / Point, 0); if(SL > MaxSL) { EAComment ("Стоплосс слишком большой!"); return; } Lot = Lots(SL); if(!OrderSend(Symbol(), OP_SELLSTOP, Lot, OpenPrice, Slippage, 0, 0, ExpertName + " Magic:" + IntegerToString(Magic), Magic, 0, Red)) EAComment ("Ошибка открытия ордера!"); Sleep(1000); if(!OrderSend(Symbol(), OP_SELLSTOP, Lot, OpenPrice, Slippage, 0, 0, ExpertName + " Magic:" + IntegerToString(Magic), Magic, 0, Red)) EAComment ("Ошибка открытия ордера!"); return; } if (direction == OP_BUY) { OpenPrice = MathMax(MathMax(High[3], High[4]), MathMax(High[2], High[1])); //NormalizeDouble(High[1]+OtstupOtlozhka*Point,Digits()); StopLoss = SL(OpenPrice, OP_BUY); SL = (OpenPrice - StopLoss) / Point; if(SL > MaxSL) { EAComment ("Стоплосс слишком большой!"); return; } Lot = Lots(SL); if(!OrderSend(Symbol(), OP_BUYSTOP, Lot, OpenPrice, Slippage, StopLoss, 0, ExpertName + " Magic:" + IntegerToString(Magic), Magic, 0, Blue)) EAComment ("Ошибка открытия ордера!"); Sleep(1000); if(!OrderSend(Symbol(), OP_BUYSTOP, Lot, OpenPrice, Slippage, StopLoss, 0, ExpertName + " Magic:" + IntegerToString(Magic), Magic, 0, Blue)) EAComment ("Ошибка открытия ордера!"); return; } return;} Может нужно на минимальный лоу? Тоже думаю что это скорее всего логическая ошибка. Поправил для продаж OpenPrice = Low[ iLowest( Symbol(), 0, MODE_LOW, 4, 1 ) ], для покупок OpenPrice = High[ iHighest( Symbol(), 0, MODE_HIGH, 4, 1 ) ], что идентично OpenPrice = MathMin(MathMin(Low[3], Low[4]), MathMin(Low[2], Low[1])) и OpenPrice = MathMax(MathMax(High[3], High[4]), MathMax(High[2], High[1])) соответственно.Теперь, скорее всего, сеты будут давать другие результаты. Было замечено, что данный недочет распространяется только на ордера sellstop. Выяснил почему - при вызове OrderSend() для позиций на продажу в качестве аргумента для стоплоса передавался 0, в отличие от покупок.Поправил, кому нужно прикладываю. Вы не могли бы исправить остальные ошибки, которые выше нашли в коде? А то автор забил на сова :(( Правда тогда и сеты придется новые создавать... Почитаю тему, посмотрю что очевидно не так в коде.Milky_way_EA_v3.00_m01.mq4Milky_way_EA_v3.00_m01.ex4 Изменено 28 апреля, 2015 пользователем kkirs 4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Doveman Опубликовано 28 апреля, 2015 Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 28 апреля, 2015 Ошибку с максимальным лоу я как-то смог исправить. Перекос пропал, но сеты подобрать не удалось. Результаты не стал сохранять, т.к. в коде еще ряд серьезных ошибок есть (например, с закрытием сделки при обратном пересечении ББ). Ссылка на сообщение Поделиться на другие сайты More sharing options...
Старик Опубликовано 28 апреля, 2015 Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 28 апреля, 2015 kkirs, просьба именовать файлы по типу Milky way EA v3.00 m01.mq4, например.Внесли коррекцию - увеличьте на единичку индекс модификации mxx в наименовании файла исходника.За доработку спасибо, бота таки очень желательно попробовать довести до ума. 4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
kkirs Опубликовано 28 апреля, 2015 Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 28 апреля, 2015 (изменено) Ошибку с максимальным лоу я как-то смог исправить. Перекос пропал, но сеты подобрать не удалось. Результаты не стал сохранять, т.к. в коде еще ряд серьезных ошибок есть (например, с закрытием сделки при обратном пересечении ББ). Похоже, тут ошибка, из-за которой первый ордер не всегда закрывается при обратном пересечении ББ2. Мы должны сравнивать закрытие позапрошлой свечи не с уровнем ББ2 на момент закрытия прошлой свечи (HighBB2 и LowBB2), а с уровнем ББ2 на момент закрытия позапрошлой свечи. Спойлер if(OrdExist(OP_BUY)>0&&Close2>HighBB2&&Close1 { signal=3; DrawFlag(2); EAComment(" Сигнал на выход из покупки обнаружен."); }if(OrdExist(OP_SELL)>0&&Close2LowBB2) { signal=-3; DrawFlag(-2); EAComment(" Сигнал на выход из продажи обнаружен."); }return(signal); Подкорректировал закрытие первого ордера. Прикладываю (m02). Спойлер // Условия закрытия одного ордера ( сигнал на выход из позиции ) double bb_high_1 = iBands( Symbol(), Period(), BBPeriod, 2, 0, 0, 1, 1 ); double bb_high_2 = iBands( Symbol(), Period(), BBPeriod, 2, 0, 0, 1, 2 ); double bb_low_1 = iBands( Symbol(), Period(), BBPeriod, 2, 0, 0, 2, 1 ); double bb_low_2 = iBands( Symbol(), Period(), BBPeriod, 2, 0, 0, 2, 2 ); if( OrdExist( OP_BUY ) > 0 && Close2 > bb_high_2 && Close1 { signal = 3; DrawFlag( 2 ); EAComment( " Сигнал на выход из покупки обнаружен." ); } if( OrdExist( OP_SELL ) > 0 && Close2 bb_low_1 ) { signal = -3; DrawFlag( -2 ); EAComment( " Сигнал на выход из продажи обнаружен." ); } Добавлено: 28-04-2015 16:53:10В первом посте написано, что при открытии ордеров используются показания ББ с отклонением 1. Реально же в коде при формировании сигнала на открытие используется ББ с отклонением 2, как и при закрытии... Исправлять или нет не знаю.В общем, направляйте меня, куда двигаться дальше. Единственное, я не буду разбираться с модификациями ММ и всем что связано с лотностью.Добавлено: 29-04-2015 08:22:52 Silentspec, я правильно понимаю, что при ExtremumControl=true и Extremum=5 он тут входить не должен? Спойлер Оба ордера закрылись по стопу, хотя по идее один должен был закрыться раньше, как только свеча закрылась выше ББ2. Конечно, фразу из описания "следующая за ней" можно понимать двояко (сразу за ней, или просто когда-нибудь), но идеологически правильно, чтобы было важно, что цена вышла за пределы ББ2, а потом вернулась. Во всяком случае для покупок именно такое наблюдается. Спойлер Нет, должен входить. Сигнальная свеча может касаться ББ. А как же: Цитата 2. Цена находится в пределах ББ с токлонением 1 и центральной линии, при этом лои Extremum свечей подряд не касаются центральной линии (отключается ExtremumControl). Добавлено: 27-03-2015 12:34:39Продолжаем изучение кода.Я правильно понимаю, что в этой части есть условие, что если ExtremumContr(1)=FALSE, сигнал на вход не появится? Спойлер // Сигнал в покупку, если нет никаких ордеровif(!MaxRisk()&&OrdExist(100)==0&&OrdExist(-100)==0&&High2>High1&&Low2>Low1&&Close1>Low1+0.5*(High1-Low1)&&Close1MiddleBB&&!ExtremumContr(1)&&High1-Low1 { signal=1; DrawFlag(1); EAComment(" Сигнал в покупку обнаружен."); } Смотрим часть, где ExtremumContr(1) присваивается значение Спойлер //+------------------------------------------------------------------+//| Highs Control |//+------------------------------------------------------------------+// Возвращает тру, если хаем или лоем задета средняя линия боллинджера// dir=1 для покупок, dir=-1 для продажbool ExtremumContr(int dir){if(!ExtremumControl) return(false); // Если отключен, возвращает фэлсdouble MiddleBB;for (int i=2;i { MiddleBB=iBands(Symbol(),Period(),BBPeriod,1,0,0,0,Extremum); if(dir==-1&&High>MiddleBB) return(true); // Если задели, вернем тру if(dir==1&&Low }return(false); // Если не задели, вернем фэлс} А вот тут, похоже, ошибка. По идее он должен сравнивать High (для продаж) c MiddleBB. Вместо этого производится сравнение каждого High с единственным уровнем MiddleBB Extremum свечей назад. Поправил ExtremumControl, теперь должно корректно работать так, как заявил автор в первом посте. При ExtremumControl == true будут отслеживаться Extremum свечей на касание с центральной линией ББ1. При ExtremumControl == false фильтрация игнорируется. Это означает, что данные расчеты не учитываются далее при формировании сигнала на открытие ордеров и не влияют на итоговый сигнал по сумме условий на открытие позиций. Прикладываю (m03). Спойлер // Возвращает тру, если хаем или лоем задета средняя линия боллинджера// dir=1 для покупок, dir=-1 для продажbool ExtremumContr( int dir ){ if( ExtremumControl == false ) return( false ); for( int i = 1; i { double middle_bb1 = iBands( Symbol(), Period(), BBPeriod, 1, 0, 0, MODE_MAIN, i ); if( dir == 1 && Low|i| { return( true ); } if( dir == -1 && High|i| > middle_bb1 ) { return( true ); } } return( false );} К указанным ранее несоответствиям кода и описания добавлю: BBMoveControl работает не так, как заявлено в первом посте (пункт 1). Используются скользящие средние вместо ББ: Спойлер bool BBMove(int dir){ if(!BBMoveControl) return(true); HideTestIndicators(true); double MAStart=iMA(Symbol(),Period(),BBPeriod,0,0,0,1); double MA03=iMA(Symbol(),Period(),BBPeriod,0,0,0,3); double MA05=iMA(Symbol(),Period(),BBPeriod,0,0,0,5); double MA07=iMA(Symbol(),Period(),BBPeriod,0,0,0,7); double MAFinish=iMA(Symbol(),Period(),BBPeriod,0,0,0,7+BBHistory); HideTestIndicators(false); if (dir==1&&MAStart>MA03&&MA03>MA05&&MA05>MA07&&MA07>MAFinish) return(true); if (dir==-1&&MAStart return (false);} Добавлено: 29-04-2015 13:08:12 Silentspec, скажи пожалуйста, я понимаю когда советник удаляет отложки если стоп-лосс велик. Но тут интересная штука, выставил недавно отложки по USDCHF, но потом одну удалил, а одна пока осталось. Так и должно быть? :-? По идее нет. Есть логи? Что пишет? Теперь удаляются оба отложенных ордера одновременно, а не с разрывом в свечу. Дело было в неправильной процедуре удаления отложенных ордеров. Прикладываю (m04). Milky_way_EA_v3.00_m02.mq4Milky_way_EA_v3.00_m03.mq4Milky_way_EA_v3.00_m04.ex4Milky_way_EA_v3.00_m04.mq4 Изменено 29 апреля, 2015 пользователем kkirs 9 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Doveman Опубликовано 29 апреля, 2015 Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 29 апреля, 2015 В первом посте написано, что при открытии ордеров используются показания ББ с отклонением 1. Реально же в коде при формировании сигнала на открытие используется ББ с отклонением 2, как и при закрытии... Исправлять или нет не знаю.В общем, направляйте меня, куда двигаться дальше. Единственное, я не буду разбираться с модификациями ММ и всем что связано с лотностью. Если Вы про проверку, сколько свечей подряд BB растет/падает, то это не важно. Средняя линия BB - это скользящая средняя. Она одинакова и для BB с отклонением 1 и для BB с отклонением 2. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
kkirs Опубликовано 29 апреля, 2015 Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 29 апреля, 2015 (изменено) В первом посте написано, что при открытии ордеров используются показания ББ с отклонением 1. Реально же в коде при формировании сигнала на открытие используется ББ с отклонением 2, как и при закрытии... Исправлять или нет не знаю.В общем, направляйте меня, куда двигаться дальше. Единственное, я не буду разбираться с модификациями ММ и всем что связано с лотностью. Если Вы про проверку, сколько свечей подряд BB растет/падает, то это не важно. Средняя линия BB - это скользящая средняя. Она одинакова и для BB с отклонением 1 и для BB с отклонением 2. Да, средняя одинакова для отклонений 1 и 2. Я про проверку в пункте 2 до запятой: Цитата Цена находится в пределах ББ с отклонением 1 и центральной линии Там при формировании сигнала на открытие используются значения BBhigh и BBLow с отклонением 2. В данном случае я говорил про это.Про проверку в пункте 1 (проверка, сколько свечей подряд BB растет/падает) я Вас понял, значит с пунктом 1 все в порядке. Пункт 2 до запятой остается под вопросом. Изменено 29 апреля, 2015 пользователем kkirs Ссылка на сообщение Поделиться на другие сайты More sharing options...
Doveman Опубликовано 29 апреля, 2015 Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 29 апреля, 2015 В первом посте написано, что при открытии ордеров используются показания ББ с отклонением 1. Реально же в коде при формировании сигнала на открытие используется ББ с отклонением 2, как и при закрытии... Исправлять или нет не знаю.В общем, направляйте меня, куда двигаться дальше. Единственное, я не буду разбираться с модификациями ММ и всем что связано с лотностью. Если Вы про проверку, сколько свечей подряд BB растет/падает, то это не важно. Средняя линия BB - это скользящая средняя. Она одинакова и для BB с отклонением 1 и для BB с отклонением 2. Да, средняя одинакова для отклонений 1 и 2. Я про проверку в пункте 2 до запятой: Цитата Цена находится в пределах ББ с отклонением 1 и центральной линии Там при формировании сигнала на открытие используются значения BBhigh и BBLow с отклонением 2. В данном случае я говорил про это.Про проверку в пункте 1 (проверка, сколько свечей подряд BB растет/падает) я Вас понял, значит с пунктом 1 все в порядке. Пункт 2 до запятой остается под вопросом. Да, конечно советник должен проверять, что цена находится между центральной линией и BB отклонением 1 (ниже центральной для продаж и выше для покупок). Иначе вся логика по закрытию первого ордера нарушается. Ссылка на сообщение Поделиться на другие сайты More sharing options...
kkirs Опубликовано 29 апреля, 2015 Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 29 апреля, 2015 (изменено) Да, конечно советник должен проверять, что цена находится между центральной линией и BB отклонением 1 (ниже центральной для продаж и выше для покупок). Иначе вся логика по закрытию первого ордера нарушается. Хорошо, поменяю в этом месте с 2 на 1. Самому показалось, что для входа отклонение 2 дает слишком широкий диапазон.Добавлено: 30-04-2015 06:13:23Готово. Теперь при формировании сигнала на открытие позиций учитываются показания ББ с отклонением 1. Прикладываю (m05).Заметил еще одно несоответствие кода описанию. А именно в пункте 3: Цитата Размер сигнальной свечи - не больше MaxCandle пунктов. На самом деле условие "не больше MaxCandle пунктов" применяется не только к сигнальной свече (индекс 1), но и к свече перед ней (индекс 2).Milky_way_EA_v3.00_m05.ex4Milky_way_EA_v3.00_m05.mq4 Изменено 30 апреля, 2015 пользователем kkirs 5 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Sommer Опубликовано 1 мая, 2015 Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 1 мая, 2015 Подскажите, а почему она 2 одинаковые отложки выставляет?Это нормально? Ссылка на сообщение Поделиться на другие сайты More sharing options...
kkirs Опубликовано 1 мая, 2015 Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 1 мая, 2015 (изменено) Это нормально. Добавлено: 02-05-2015 10:21:44Провел небольшие исправления и местами чистку кода. Подытожу правила входа и выхода из позиций, по которым работает советник:Покупки: Спойлер Открытие ордеров:1. Размер сигнальной свечи - не больше MaxCandle пунктов.2. Размер свечи перед сигнальной свечой - не больше MaxCandle пунктов.3. Лоу сигнальной свечи ниже предыдущего лоу, хай сигнальной свечи ниже предыдущего хая.4. Закрытие сигнальной свечи происходит в верхней половине ее диапазона.5. Цена закрытия сигнальной свечи находится между центральной и верхней линией BB с периодом BBPeriod и отклонением 1.6. РСИ с периодом RSIPer находится ниже RSILow, гарантируя, что откат уже достаточный.7. Если ExtremumControl == true, то лои Extremum свечей подряд до сигнальной свечи не касаются центральной линии ББ с периодом BBPeriod и отклонением 1. Сигнальная свеча может касаться центральной линии ББ.8. Если BBMoveControl == true, то средняя линия ББ с периодом BBPeriod растет BBHistory свечей подряд.9. Если OzymandiasFilter == true, то индикатор Ozymandias с периодом Amplitude на таймфрейме OzymandiasTF сигнализирует о возможности покупок.Условия 7-9 игнорируются, если равны false. При соблюдении всех условий советник выставляет сразу два отложенных стоповых ордера с рассчитанным стоплосом, без тейкпрофита. Закрытие ордеров:Если отложки не активируются спустя OrdTime свечей после выставления, то они удаляются. Если отложенные ордера активировались, то:1. Когда свеча закроется выше верхней линии ББ с периодом BBPeriod и отклонением 2, а следующая за ней закроется ниже - советник прикроет один ордер.2. Второй ордер будет находиться в рынке до тех пор, пока его не выбьет по стопу, который постоянно подтягивается тралами. Продажи: Спойлер Открытие ордеров:1. Размер сигнальной свечи - не больше MaxCandle пунктов.2. Размер свечи перед сигнальной свечой - не больше MaxCandle пунктов.3. Лоу сигнальной свечи выше предыдущего лоу, хай сигнальной свечи выше предыдущего хая.4. Закрытие сигнальной свечи происходит в нижней половине ее диапазона.5. Цена закрытия сигнальной свечи находится между центральной и нижней линией BB с периодом BBPeriod и отклонением 1.6. РСИ с периодом RSIPer находится выше RSIHigh, гарантируя, что откат уже достаточный.7. Если ExtremumControl == true, то хаи Extremum свечей подряд до сигнальной свечи не касаются центральной линии ББ с периодом BBPeriod и отклонением 1. Сигнальная свеча может касаться центральной линии ББ.8. Если BBMoveControl == true, то средняя линия ББ с периодом BBPeriod падает BBHistory свечей подряд.9. Если OzymandiasFilter == true, то индикатор Ozymandias с периодом Amplitude на таймфрейме OzymandiasTF сигнализирует о возможности продаж.Условия 7-9 игнорируются, если равны false. При соблюдении всех условий советник выставляет сразу два отложенных стоповых ордера с рассчитанным стоплосом, без тейкпрофита.Закрытие ордеров:Если отложки не активируются спустя OrdTime свечей после выставления, то они удаляются. Если отложенные ордера активировались, то:1. Когда свеча закроется ниже нижней линии ББ с периодом BBPeriod и отклонением 2, а следующая за ней закроется выше - советник прикроет один ордер.2. Второй ордер будет находиться в рынке до тех пор, пока его не выбьет по стопу, который постоянно подтягивается тралами. Насколько я могу судить, все замечания в этой ветке, касающиеся открытия и закрытия советником ордеров, я охватил. Поскольку сеты из первого поста теперь не подходят (начиная с модификации m01), то было бы неплохо создать новые сеты для советника. Прикладываю последнюю версию (m06).Milky_way_EA_v3.00_m06.zip Изменено 2 мая, 2015 пользователем kkirs 14 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Sommer Опубликовано 4 мая, 2015 Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 4 мая, 2015 kkirs, в сове есть еще пара мелких недочетов, мож поправите? На торговлю оно никак не влияет, но немножко неудобно...Например, лог пишется в файл только при закрытии терминала (ну или с какой-то дикой задержкой, не пойму). Во время работы - лог пустой. Приходится закрывать терминал. Пока не закроешь - не поймешь, че там происходит (мож какие ошибки есть). Ссылка на сообщение Поделиться на другие сайты More sharing options...
Мерлин Опубликовано 22 мая, 2015 Поделиться [open source] [Советник] Milky Way EA 3.24 Опубликовано 22 мая, 2015 У кого-нибудь есть хорошие сеты под новую версию советника? ну, это чтобы лишнюю работу не делать)) Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти