Торговые системы: Использование платформы MetaTrader 4 для выявления благоприятных временных окон (паттернов времени)
//+------------------------------------------------------------------+ //| FILTER BLOCK MODULES //+------------------------------------------------------------------+ bool BlockTradingFilter1() { bool BlockTrade=false; //trade by default if (UseHourTrade) { if( !(Hour() >= FromHourTrade && Hour() <= ToHourTrade && Minute()<= 3) ) { // Comment("Non-Trading Hours!"); BlockTrade=true; } } return (BlockTrade); }Не очень понял к чему в условии if( !(Hour() >= FromHourTrade && Hour() <= ToHourTrade && Minute()<= 3) ) минуты, и как быть например с интервалом часов 22 - 5... Жаль, что атор не выложил исходники, может было бы понятнее...
if(ToHourTrade < FromHourTrade)
return(0);
And the 3 minutes tollerance is in accordance with the 15M time frame.
Добавление уровня Stop Loss на основе временного подхода
Возможно перевод не точен, но судя по коду входной параметр TradeHoldingPeriod приводит нашу убыточную позу к закрытию по истечению времени:
if(UseTimeBasedStopLoss && TimeHour(TimeCurrent() - OrderOpenTime()) >= TradeHoldingPeriod && OrderProfit() < 0 )
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position!!
return(0);
}
Оптимизировал советник, для EURUSD, NZDUSD, USDJPY, прогнал через истоию при помощи визуализации и был шокирован результатами.
Я много видел советников, ломал голову над своими, но как по мне, это самый уникальный советник, без нейросетей.
Протестирую на демо, выложу результаты. Если результаты будут такие же как и на тесте, выложу свои оптимизированные значения.
if(OrderType() == OP_BUY) { // check profit and set trailing stops if(UseTimeBasedStopLoss && TimeHour(TimeCurrent() - OrderOpenTime()) >= TradeHoldingPeriod && OrderProfit() < 0 ) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position!! return(0); } } else // PROCESS SELL ORDER { // check profit and set trailing stops if(UseTimeBasedStopLoss && TimeHour(TimeCurrent() - OrderOpenTime()) >= TradeHoldingPeriod && OrderProfit() < 0 ) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position!! return(0); } }
Надо бы некоторые мелочи подправить, как например, закрытие позиции Sell по цене Bid:
Спасибо за замечание. Поправлено.
Что-то я немного запутался, подскажите плиз.
Нужно к графику подключать индикаторы или нет?
Просто я чего спрашиваю:
Оптимизировал для USDJPY. Вход в рынок в 9-00, а советних не открыл ни одного ордера.
Вот меня и терзают смутные сомнения, может я что-то не так сделал.
Этот график я получил за 2007г просто добавив в советник возможность выставления процентного лота. Старт с 10000. Лично я в шоке.
double LotSize() { double one_lot,min_lot,step_lot; double value; one_lot=MarketInfo(Symbol(),MODE_MARGINREQUIRED); // залог на 1 лот min_lot=MarketInfo(Symbol(),MODE_MINLOT); // минимальный размер лота step_lot=MarketInfo(Symbol(),MODE_LOTSTEP); // шаг изменения лота value=(AccountFreeMargin()/100*Procent)/one_lot; value=NormalizeDouble((value-min_lot)/step_lot,0); // нормализация лота value=min_lot+value*step_lot; return (value); }
Вызов функции производить в месте использования lots.
extern int Procent=5; // процент ставки от свободного депоЭто вставить в начале вместо объявления lots.
Что-то я немного запутался, подскажите плиз. Нужно к графику подключать индикаторы или нет? Просто я чего спрашиваю: Оптимизировал для USDJPY. Вход в рынок в 9-00, а советних не открыл ни одного ордера.Вот меня и терзают смутные сомнения, может я что-то не так сделал.
Нет, подключать ничего не надо. Просто открывает он не каждый день.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
New article Использование платформы MetaTrader 4 для выявления благоприятных временных окон (паттернов времени) has been published:
Анализ паттернов времени может применяться для рынка Форекс с целью определения наилучшего времени для открытия сделок, а также периодов, когда не следует торговать вовсе. В данном случае мы используем торговую платформу MetaTrader 4 для анализа истории и оптимизации результатов, которые могут быть использованы в механических торговых системах.
Чтение интервью, опубликованных на сайте Чемпионата Automated Trading Championship, обнаруживает много интересной информации, скрытой в рассуждениях.
В интервью Уильяма Ботрайта (Wackena) (https://championship.mql5.com/2012/ru/news) меня заинтересовала идея анализа времени для выявления одного единственного часа в сутки для совершения одной единственной сделки при свинговой торговле.
Поэтому я начал собирать информацию об исследованиях анализа времени для определения благоприятных точек входа в рынок. Более того, я решил реализовать систему, которая могла бы подтвердить эффективность подобной методики.
В конце статьи приводится код советника. В нем отсутствует стратегия выхода, однако он приведен здесь только как пример временных паттернов, которые можно получить, анализируя данные и проводя статистические исследования с помощью MetaTrader 4.
Author: Giampiero Raschetti