Авторы молодцы! Добротная работа, достигли цели - прибыльный флетовый советник. Сейчас протестил на нашем рынке, в частности на Si-12.18, хороший профит дает! Давно искал такой.
Есть пара замечаний: 1. Слишком долго отрисовывает, вся логика в OnTick, он же ведь не тиковый, можно применить типа CBarDetector c периодом М1 или М5. Я сделал с М5 - гораздо веселее стал работать. 2. Хотелось бы иметь мин.-макс. ширину канала в динамике в зависимости от текущей волатильности рынка.
Авторы молодцы! Добротная работа, достигли цели - прибыльный флетовый советник. Сейчас протестил на нашем рынке, в частности на Si-12.18, хороший профит дает! Давно искал такой.
Есть пара замечаний: 1. Слишком долго отрисовывает, вся логика в OnTick, он же ведь не тиковый, можно применить типа CBarDetector c периодом М1 или М5. Я сделал с М5 - гораздо веселее стал работать. 2. Хотелось бы иметь мин.-макс. ширину канала в динамике в зависимости от текущей волатильности рынка.
Чтобы быстро тестировало в визуальном режиме нужно отключить в коде вывод комментариев:
/* Comment("\nСоветник "+__FILE__+" весь в работе: ",TimeControl(), "\nДень: ",Dayof(STimeCurrent), "\nТорговый счёт: ",m_account.Login(), "\nCompany: ",m_account.Company(), "\nEquity: ",m_account.Equity(), "\nВремя по GMT: "+TimeToString(TimeGMT(),TIME_DATE|TIME_SECONDS), "\nSpread: ",m_symbol.Spread(), "\nStopLevel: ",m_symbol.StopsLevel(), "\nПлечо: ",m_account.Leverage() );*/ //--- we work only at the time of the birth of new bar
Спасибо тем кто реализовал данный советник!
Я по строчкам разбираю этого советника, чтобы адаптировать под moex (он же все таки заточен под forex), так вот у меня вопрос по коду
//--- FreezeLevel -> for pending order and modification double freeze_level=m_symbol.FreezeLevel()*m_symbol.Point(); if(freeze_level==0.0) freeze_level=(m_symbol.Ask()-m_symbol.Bid())*3.0; freeze_level*=1.1; //--- StopsLevel -> for TakeProfit and StopLoss double stop_level=m_symbol.StopsLevel()*m_symbol.Point(); if(stop_level==0.0) stop_level=(m_symbol.Ask()-m_symbol.Bid())*3.0; stop_level*=1.1;
зачем идет умножение, именно на 3 и потом еще на 1.1?
Спасибо тем кто реализовал данный советник!
Я по строчкам разбираю этого советника, чтобы адаптировать под moex (он же все таки заточен под forex), так вот у меня вопрос по коду
зачем идет умножение, именно на 3 и потом еще на 1.1?
Forex знаю, биржа - знаю. А что такое за зверь лютый такой moex - не знаю.
я просто хочу разобраться в логике кода и адаптировать его под биржу
1. Обратите внимание: если я отвечаю кому-то, я использую кнопку "Ответить".
2.Чтобы точно писать код, для начала выясните в техподдержке брокера всё об уровнях SYMBOL_TRADE_STOPS_LEVEL и SYMBOL_TRADE_FREEZE_LEVEL: на всех символах эти уровни ноль? что означает "ноль" - это плавающий уровень или действительно уровня просто нет.
1. Обратите внимание: если я отвечаю кому-то, я использую кнопку "Ответить".
2.Чтобы точно писать код, для начала выясните в техподдержке брокера всё об уровнях SYMBOL_TRADE_STOPS_LEVEL и SYMBOL_TRADE_FREEZE_LEVEL: на всех символах эти уровни ноль? что означает "ноль" - это плавающий уровень или действительно уровня просто нет.
техподдержке брокера написала что данные уровни не транслируются.
техподдержке брокера написала что данные уровни не транслируются.
Тогда просто не учитывайте их (временно закомментируйте строки, где выучивается эти уровни).
Тогда просто не учитывайте их (временно закомментируйте строки, где выучивается эти уровни).
Подскажите, а временной контроль, в данном советнике, не работает? в процедуре TimeControl есть строчки
if(!InpTimeControl) return(true);
т.е. если значение InpTimeControl равно false, то возвращает, процедуре TimeControl, все равно true?
bool TimeControl(void) { if(!InpTimeControl) return(true); MqlDateTime STimeCurrent; datetime time_current=TimeCurrent(); if(time_current==D'1970.01.01 00:00') return(false); TimeToStruct(time_current,STimeCurrent); if(InpStartHour<InpEndHour) // intraday time interval { if(STimeCurrent.hour>=InpStartHour && STimeCurrent.hour<InpEndHour) return(true); } else if(InpStartHour>InpEndHour) // time interval with the transition in a day { if(STimeCurrent.hour>=InpStartHour || STimeCurrent.hour<InpEndHour) return(true); } else return(false); //--- return(false); }
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Flat Channel:
Краткое описание
Автор: Vladimir Karputov