Бесплатная торговая стратегия MOSCOW
Бесплатная торговая стратегия MOSCOW – заслуживает включения в портфель серьёзных трейдеров!
Как я узнал об этой стратегии? Если честно, то случайно. Я не пытался специально её разработать, не сидел часами перед графиком и не искал закономерности, можно сказать мне немного повезло. Дело было в начале этого года, когда я полностью проверял свои стратегии. Чуть-чуть поэкспериментировал с кодом советника и получил новую стратегию. Вот как бывает, многие трейдеры не могут придумать, как им торговать, а у меня варианты сами находятся.
Хотя этот метод не самый прибыльный, да и просадки не малые, для одиночного применения не подойдёт, но для включения в портфель систем – самый раз! Или же каждый читатель может поэкспериментировать с параметрами, возможно, получится улучшить.
MOSCOW – название придуманное пять минут назад, следуя традициям интернета у стратегии обязательно должно быть громкое имя! icon smile Бесплатная торговая стратегия MOSCOW. А учитывая, что я поделюсь не единственной рабочей системой (обещал в статье: «Моя прибыльная торговая стратегия по Эллиоту!»), буду называть их российскими городами на английском языке.
Система трендследящая, правила очень простые. Как и все трендовые стратегии похожа на остальные. Ниже приведу результаты и код советника на mql4 для тестирования.
Правила бесплатной торговой стратегии MOSCOW
Начну с открытия сделок. Рекомендую применять на таймфрейме D1, так как издержки оказываются в разы ниже, чем при более мелких таймфреймах (Ахтунг!: «Как форекс комиссия убивает ваш счёт?!»). Для следования нам потребуется индикатор Moving Average c периодом 14. Если текущий бар превышает максимум предыдущего (цена закрытия которого больше МА), то покупать. Продавать, если текущий бар опускается ниже минимума предыдущего (с ценой закрытия ниже МА). Если рассматривать конкретно ТФ D1, то покупка происходит при пробитии максимума предыдущего дня, а продажа при пробитии минимума предыдущего дня. Важно, чтобы цена закрытия предыдущего дня была выше/ниже МА. Вот такие простые правила открытия позиций.
Идеология этой стратегии заключается в принятии небольших убытков, в расчёте получить большую прибыль! Именно так, поэтому профит ордеров нет вообще, если позиция открылась, то она должна закрыться только по стоп ордеру, который переставляется только в прибыльном направлении.
Как выставить и переставлять стоп лосс? Тактика такая: для позиций на покупку из 5 последних баров не включая текущего выбирается тот, у которого самый низкий Low (то есть самое низкое значение, на которое опускалась цена). Именно на это значение мы и выставим стоп лосс. По мере появления новых баров повторить эти расчёты и переставить стоп, если требуется. То есть трейлинг стоп по минимуму за 5 баров.
Для сделок на продажу всё делаем с точностью до наоборот. Трейлинг стоп по максимуму за 5 баров.
Если ничего не забыл, то перейдём к результатам стратегии, которые я получил в ходе тестирования.
Результаты бесплатной торговой стратегии MOSCOW
Проводил тестирование в тестере мт4, начиная с 28.09.1998 года по настоящее время. Проводил на 4 валютных парах: EUR/USD, GBP/USD, AUD/USD, USD/JPY. Забегая вперёд скажу, что каждая из пар дала положительный результат.
EUR/USD
Самая трендовая валютная пара, результаты тестирования на ней лучше остальных. Прибыль составила примерно 69% при максимальной просадке 27.54%. Хочу обратить ваше внимание на продолжительные просадки, их период 2-3 года, поэтому не советую применять её в одиночном виде, переждать такие просадки трудно психологически.
GBP/USD
Прибыль около 52% при максимальной просадке 23.94%. Просадки такие же затяжные, прибыль делается за короткие сроки. Может быть, начинать применять её только во время продолжительной просадки, в расчёте на большую прибыль?
AUD/USD
Прибыль 17%, при максимальной просадке 36.37%.
USD/JPY
Прибыль 42%, при максимальной просадке 42.74%. Просадка практически всё время тестирования, вся прибыль получена за последние месяцы.
Вывод: по результатам тестирования на 4-х валютных парах, не советую применять бесплатную торговую стратегию в единственном виде, так как довольно велики просадки. Способна принести дополнительный доход, если использовать в портфеле торговых систем. Либо проведите тестирование на акциях и фьючерсах, подберите больше инструментов для диверсификации.
Для улучшения результатов можно поэкспериментировать с профитом, сделать его фиксированным, например. Выложу код стратегии, сделать это будет нетрудно.
Код бесплатной торговой стратегии на mql4
Код пригоден только для тестирования, для совершения реальных торговых операций он не подходит!
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
double risk;
double stoim;
double razmer_tika;
double min_lot;
double st_min_lot;
double stop_in_punkt;
int stop_in_tik;
double max_stoim_tika;
int x;
double lot;
double punkt;
double MA1;
static double p;
static double p1;
static double p2;
static double p3;
//---------------------------------------------------------------------+
MA1=iMA(NULL,0,14,0,MODE_SMA,PRICE_CLOSE,1);
//---------------------------------------------------------------------+
if((Close[1]>MA1)&&(Bid>=High[1])&&((p!=Open[1])))
//--------+
{
risk=100000/500; //риск=5%
stoim=MarketInfo(Symbol(),MODE_TICKVALUE); //стоимость тика для 1 лота
razmer_tika=MarketInfo(Symbol(),MODE_TICKSIZE);
min_lot=MarketInfo(Symbol(),MODE_MINLOT); //размер минимального лота(0,01)
st_min_lot=stoim*min_lot; //стоимость тика для минимального лота
stop_in_punkt=NormalizeDouble(Bid-Low[1],Digits); //кол-во пунктов для стопа
stop_in_tik=stop_in_punkt/razmer_tika; //нахожу размер стопа в тиках
max_stoim_tika=risk/stop_in_tik; //максимально допустимая стоимость тика
x=max_stoim_tika/st_min_lot; //нахожу доступную стоимость тика
lot=min_lot*x; //лот сделки
punkt=MarketInfo(Symbol(),MODE_POINT);
p=Open[1];
OrderSend(Symbol(),OP_BUY,lot,Ask,3,0,0);
}
//-----------------------------------------------------------------------+
if((Close[1]<MA1)&&(Bid<=Low[1])&&((p1!=Open[1])))
//--------+
{
risk=100000/500; //риск=5%
stoim=MarketInfo(Symbol(),MODE_TICKVALUE); //стоимость тика для 1 лота
razmer_tika=MarketInfo(Symbol(),MODE_TICKSIZE);
min_lot=MarketInfo(Symbol(),MODE_MINLOT); //размер минимального лота(0,01)
st_min_lot=stoim*min_lot; //стоимость тика для минимального лота
stop_in_punkt=NormalizeDouble(High[1]-Bid,Digits); //кол-во пунктов для стопа
stop_in_tik=stop_in_punkt/razmer_tika; //нахожу размер стопа в тиках
max_stoim_tika=risk/stop_in_tik; //максимально допустимая стоимость тика
x=max_stoim_tika/st_min_lot; //нахожу доступную стоимость тика
lot=min_lot*x; //лот сделки
punkt=MarketInfo(Symbol(),MODE_POINT);
p1=Open[1];
OrderSend(Symbol(),OP_SELL,lot,Bid,3,0,0);
}
//-----------------------------------------------------------------------+
for(int i=0;i<OrdersTotal();i++)
if((OrderSelect(i,SELECT_BY_POS)==true)&&(OrderType()==OP_BUY)&&(p2!=Open[1]))
{
if((Low[1]<=Low[2])&&(Low[1]<=Low[3])&&(Low[1]<=Low[4])&&(Low[1]<=Low[5]))
OrderModify(OrderTicket(),OrderOpenPrice(),Low[1],0,0,Black);
if((Low[2]<=Low[1])&&(Low[2]<=Low[3])&&(Low[2]<=Low[4])&&(Low[2]<=Low[5]))
OrderModify(OrderTicket(),OrderOpenPrice(),Low[2],0,0,Black);
if((Low[3]<=Low[1])&&(Low[3]<=Low[2])&&(Low[3]<=Low[4])&&(Low[3]<=Low[5]))
OrderModify(OrderTicket(),OrderOpenPrice(),Low[3],0,0,Black);
if((Low[4]<=Low[1])&&(Low[4]<=Low[2])&&(Low[4]<=Low[3])&&(Low[4]<=Low[5]))
OrderModify(OrderTicket(),OrderOpenPrice(),Low[4],0,0,Black);
if((Low[5]<=Low[1])&&(Low[5]<=Low[2])&&(Low[5]<=Low[3])&&(Low[5]<=Low[4]))
OrderModify(OrderTicket(),OrderOpenPrice(),Low[5],0,0,Black);
}
p2=Open[1];
for(int u=0;u<OrdersTotal();u++)
if((OrderSelect(u,SELECT_BY_POS)==true)&&(OrderType()==OP_SELL)&&(p3!=Open[1]))
{
if((High[1]>=High[2])&&(High[1]>=High[3])&&(High[1]>=High[4])&&(High[1]>=High[5]))
OrderModify(OrderTicket(),OrderOpenPrice(),High[1],0,0,Black);
if((High[2]>=High[1])&&(High[2]>=High[3])&&(High[2]>=High[4])&&(High[2]>=High[5]))
OrderModify(OrderTicket(),OrderOpenPrice(),High[2],0,0,Black);
if((High[3]>=High[1])&&(High[3]>=High[2])&&(High[3]>=High[4])&&(High[3]>=High[5]))
OrderModify(OrderTicket(),OrderOpenPrice(),High[3],0,0,Black);
if((High[4]>=High[1])&&(High[4]>=High[2])&&(High[4]>=High[3])&&(High[4]>=High[5]))
OrderModify(OrderTicket(),OrderOpenPrice(),High[4],0,0,Black);
if((High[5]>=High[1])&&(High[5]>=High[2])&&(High[5]>=High[3])&&(High[5]>=High[4]))
OrderModify(OrderTicket(),OrderOpenPrice(),High[5],0,0,Black);
}
p3=Open[1];
//----------------------------------------------------------------------+
return(0);
}
//+---------------------------------------------------------------------+
Если по коду возникнут вопросы, задавайте в комментариях! Может быть, я где-то ошибку допустил, найдёте?
Будете тестировать с другими параметрами, не забудьте поделиться в комментариях результатами.
На этом статья о бесплатной торговой стратегии заканчивается. Кстати, есть отличный советник, который использует подобные точки входа, но уровни ордеров другие. Подробнее читайте здесь, там же можно и скачать. Рост эквити получается более плавным, чем у MOSCOW, средняя доходность 7% в месяц.
1067
Рекомендуем также
Популярное
Комментируют
Комментарии -0