Торговая система Kuklovod.

Делимся и обмениваемся опытом в области торговых стратегий, выносим на обсуждение свои идеи. Для каждой стратеги создаем отдельную тему.

Торговая система Kuklovod.

Сообщение denis77515 » 27 июн 2014, 06:01

Здраствуйте всем хочу поделится торговой системой под названием Kuklovod взятая мной с сайта << TradeLikeaPro.ru >> Она основывается на корреляции и одной валюты например USD, связаные с ним пары. Торговлю лучше вести на дневных графиках. В систему входит один индикатор в окне инструмента, который в свою очередь включает в себя много разных индикаторов пересчитывает их значения и выдает результат.

И так:

Платформа: Metatrader 4
Валютные пары: Мажоры и кроссы (подробнее ниже)
Таймфрейм: D1
Время торговли: раз в сутки
Рекомендуемые ДЦ: Альпари (счета Nano), Forex4you

Торговля корзинами валютных пар.

Вы наверняка замечали, что валютные пары двигаются в определенной
зависимости друг от друга. Например, когда EURUSD идет вверх, USDCHF идет
вниз. А когда растет GBPUSD, то как правило, за ней следует и NZDUSD. Также
все пары с йеной (JPY) обычно двигаются в одном направлении. Не каждый
день, не каждую свечу, но в целом тенденции существуют.Выделив определенные «семейства»
валютных пар и их зависимости от объединяющего их фактора, к примеру наличия Usd в паре мы можем
открывать единую позиции сразу по всей группе валютных пар и тем самым
снизить риски, диверсифицируя нашу позицию изнутри. Это называется
торговлей корзинами из ордеров разных валютных пар.
Открываем графики и переключаем сразу таймфрейм на D1: EURUSD, USDSHF, USDCAD, GBPUSD, AUDUSD, NZDUSD, USDJPY.

Правила входа:
Входим мы сразу по всем группам пар. Открываем позиции ТОЛЬКО если
индикатор Кукловод находится между -10 и -30 или между 10 и 30. Что
покупать / что продавать для каждой группы валют смотрите ниже. Также
обратите внимание, что для каждой корзины — свой отдельный индикатор.

Корзина USD:

1) Индикатор выше 10, но ниже 30:

Buy: USDCAD, USDCHF, USDJPY
Sell: EURUSD, GBPUSD, AUDUSD, NZDUSD

2) Индикатор ниже -10, но выше -30:

Sell: USDCAD, USDCHF, USDJPY
Buy; EURUSD, GBPUSD, AUDUSD, NZDUSD

Правила выхода:

Выходим из позиции если индикатор дошел до 70 или -70 (тейк-профит).
Стоп-лоссом для нас будет значение индикатора -10 или 10 (противоположное позиции).
При выходе закрывает все ордера в корзине.

Риск менеджемент:

Если вы никогда ранее не торговали корзинами ордеров, то для вас риск равен 0.01 лота на каждые 10000 единиц валюты на депозите. На 1 корзину.

Это вовсе не значит, что нужно 10000$, достаточно 100$ на центовом счету. Соблюдение столь демократичного мани-менеджмента обязательно, учитывая особенности данной торговой системы.

Указанный ММ рассчитан на тех, кто никогда корзинами не торговал, т.к. они могут просто впасть в панику от большого числа пунктов по нескольким парам в плюс, либо в минус. Те, кто уже имел дело с корзинами, подберут для себя подходящий лот сами.

Но честно сказать я пробовал торговать по правилам этой системы,она работает но бывает дает сбои на флете от сюда получаем ощутимый убыток. потому как значения индикатора могут сменится несколько раз в день.
Я опробовал другие правила входа с использованием усреднения,но не более 3 колен ордеров и риск по депозиту не более 20%.
И Так:
1) Индикатор выше 70, но ниже 75:

Sell: USDCAD, USDCHF, USDJPY
Buy: EURUSD, GBPUSD, AUDUSD, NZDUSD

Индикатор выше 80, но ниже 85 и индикатор выше 90, но ниже 95 то открываем ордера в тех же направлениях но с увеличенным лотом.Как говорил выше не более трех колен ордеров.Если просадка достигла порога 20% от депозита закрыть все ордера.

2) Индикатор выше -70, но ниже -75:
Sell: EURUSD, GBPUSD, AUDUSD, NZDUSD
Buy: USDCAD, USDCHF, USDJPY

Индикатор выше 80, но ниже 85 и индикатор выше 90, но ниже 95 то открываем ордера в тех же направлениях но с увеличенным лотом.Как говорил выше не более трех колен ордеров.Если просадка достигла порога 20% от депозита закрыть все ордера.

Такой риск по депозиту пока себя оправдывает. вот мониторинг по этой системе.первые два месяца я торговал строго по правилам,последние два по измененным.

Прилогаю индикатор и 2 скрипта к этой системе.
По поводу скриптов(я не профи в программировании,так что сильно не пинайте) :T
Изображение

[url]<a href="http://www.myfxbook.com/members/denis77515/10501091108210831086107410861076-usd/848691"><img border="0" src="http://widgets.myfxbook.com/widgets/848691/large.jpg"/></a>[/url]
У вас нет доступа для просмотра вложений в этом сообщении.
denis77515
Участник
 
Сообщений: 11
Зарегистрирован: 27 июн 2014, 04:29

Re: Торговая система Kuklovod.

Сообщение Николай » 29 июн 2014, 13:22

Решил попробовать написать по это ТС советник с мульти валютными советниками я не работал
не обещаю что будет быстро
попытаюсь с начало что по проще http://tradelikeapro.ru/strategiya-kuklovod/
а потом прикрутим вашу доливку
тестировать советник в тестере не получится так как тестер не откроет ордера другой валюты
надо тестировать на демо или на реале
вот не много накидал код но пока проверил на тестере в рабочее время надо на демо попробовать
Код: выделить все
//+------------------------------------------------------------------+
//|                                                     Kuklovod.mq4 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
#property strict

 extern double  Lot        = 0.01;       //объем лота
 extern int     slip       = 10;         //проскальзывание при установке ордеров
 extern int     id         = 0;          //идентификатор
 extern bool    Basket_USD = true;       //Корзина USD
 extern bool    Basket_GBP = false;      //Корзина GBP
 extern bool    Basket_JPY = false;      //Корзина JPY
 extern int     bars       = 50;         //сколько баров прорисовываем
 extern string  _1="выше нуля и между";//если индикатор Кукловод находится 
 extern string  Min_1="10";//
 extern string  Max_1="30";//
 extern string  _2="ниже нуля и между";//если индикатор Кукловод находится
 extern string  Min_2="-10";//
 extern string  Max_2="-30";//
 
 int    saze1,saze2;
 string sy1USD[]={"USDCAD","USDCHF","USDJPY"};
 string sy2USD[]={"AUDUSD","NZDUSD","GBPUSD","EURUSD"};

 
 string    WPR_USD[500];
 string    WPR_JPY[500];
 string    WPR_GBP[500];
 
 
 
//+------------------------------------------------------------------+
int OnInit(){

   return(INIT_SUCCEEDED);
  }


//+------------------------------------------------------------------+
void OnDeinit(const int reason){

  }


//+------------------------------------------------------------------+
void OnTick(){
Indicator(bars);
   
   
if(CountBuy() == 0 && CountSell() == 0){
  saze1 = ArraySize(sy1USD);
  saze2 =  ArraySize(sy2USD);
   if(Basket_USD && WPR_USD[0]>=Min_1 && WPR_USD[0]<=Max_1){
      for(int i=saze1-1; i>=0; i--){
         OpenBuy(sy1USD[i],Lot);
      }
      for(int i=saze2-1; i>=0; i--){
         OpenSell(sy2USD[i],Lot);
      }
   }
   if(Basket_USD && WPR_USD[0]>=Min_2 && WPR_USD[0]<=Max_2){
      for(int i=saze1-1; i>=0; i--){
      OpenSell(sy1USD[i],Lot);
      }
      for(int i=saze2-1; i>=0; i--){
      OpenBuy(sy2USD[i],Lot);
      }
   }
}
   Comment(WPR_USD[0]);

   
  }
//+------------------------------------------------------------------+
 //+------------------------------------------------------------------+
int CountSell(){
 int count = 0;
  for(int a=OrdersTotal()-1; a>=0; a--){
    if(OrderSelect(a,SELECT_BY_POS,MODE_TRADES)){
    if(OrderType() == 1)
    count++;
  }
}
return(count);
}
//+------------------------------------------------------------------+
int CountBuy(){
 int count = 0;
  for(int a=OrdersTotal()-1; a>=0; a--){
    if(OrderSelect(a,SELECT_BY_POS,MODE_TRADES)){
    if(OrderType() == 0)
    count++;
  }
}
return(count);
}


void Indicator(int k){
   if(k>=Bars-1){k=Bars-1;} //проверяем, есть ли такое количество баров на графике, если нет, берем сколько есть
   for(int i=0; i<=k; i++){ // создаем цикл, перебираем бары
   
   WPR_USD[i] = DoubleToStr(iCustom(Symbol(),0,"Kuklovod_USD",7,i),2);
   WPR_JPY[i] = DoubleToStr(iCustom(Symbol(),0,"Kuklovod_JPY",7,i),2);
   WPR_GBP[i] = DoubleToStr(iCustom(Symbol(),0,"Kuklovod_GBP",7,i),2);
   }
}
//===========================================================================================================
//--- Команда установить BUY ордер немедленного исполнения ----------------------------------------------
 void OpenBuy(string SymbolScan,double lot_b){
    int InstallBuy=0;
    double StartTP=0, StartSL=0;
    while(IsTradeContextBusy()){Sleep(100);} //Если торговый поток занят, ожидаем
    RefreshRates(); //обновляем данные 
    InstallBuy=OrderSend(SymbolScan,OP_BUY,NormalizeDouble(lot_b,2),Ask,slip,0,0," = Buy = ",id,0);   // Открываем BUY ордер
    if(InstallBuy<0){Alert("Функция OpenBuy","\n","Валютная пара "+SymbolScan,"\n","Команда: открыть ордер Buy","\n", "Ответ сервера: " ,errors(GetLastError()) );} //если неудачно выводим сообщение
     
 }
//===========================================================================================================
//--- Команда установить Sell ордер немедленного исполнения --------------------------------------------
 void OpenSell(string SymbolScan,double lot_s){
    int InstallSell=0;
    while(IsTradeContextBusy()){Sleep(100);} //Если торговый поток занят, ожидаем 
    RefreshRates(); //обновляем данные
    InstallSell=OrderSend(SymbolScan,OP_SELL,NormalizeDouble(lot_s,2),Bid,slip,0,0," = Sell = ",id,0); // Открываем Sell ордер 
    if (InstallSell<0){Alert("Функция OpenSell","\n","Валютная пара "+SymbolScan,"\n", "Команда: открыть ордер Sell","\n", "Ответ сервера: " ,errors(GetLastError()) );} //если неудачно выводим сообщение   
   
 }
//===========================================================================================================   
//--- ОБРАБОТКА ОШИБОК ---
 string errors(int error){
     string error_string;
     switch(error){
         case 0:   error_string=" OK";                                      break;
         case 1:   error_string=" результат неизвестен";                    break;
         case 2:   error_string=" общая ошибка";                            break;
         case 3:   error_string=" неправильные параметры";                  break;
         case 4:   error_string=" торговый сервер занят";                   break;
         case 5:   error_string=" старая версия терминала";                 break;
         case 6:   error_string=" нет связи с торговым сервером";           break;
         case 7:   error_string=" недостаточно прав";                       break;
         case 8:   error_string=" слишком частые запросы";                  break;
         case 9:   error_string=" недопустимая операция";                   break;
         case 64:  error_string=" счет заблокирован";                       break;
         case 65:  error_string=" неправильный номер счета";                break;
         case 128: error_string=" время ожидания истекло";                  break;
         case 129: error_string=" неправильная цена";                       break;
         case 130: error_string=" неправильные стопы";                      break;
         case 131: error_string=" неправильный объем";                      break;
         case 132: error_string=" рынок закрыт";                            break;
         case 133: error_string=" торговля запрещена";                      break;
         case 134: error_string=" недостаточно средств";                    break;
         case 135: error_string=" цены изменились";                         break;
         case 136: error_string=" нет цен";                                 break;
         case 137: error_string=" брокер занят";                            break;
         case 138: error_string=" новые цены";                              break;
         case 139: error_string=" ордер обрабатывается";                    break;
         case 140: error_string=" разрешена только покупка";                break;
         case 141: error_string=" слишком много запросов";                  break;
         case 145: error_string=" ордер слишком близок к рынку";            break;
         case 146: error_string=" подсистема торговли занята";              break;
         case 147: error_string=" дата ордера запрещена брокером";          break;
         case 148: error_string=" превышение количества ордеров";           break;
         case 149: error_string=" хеджирование запрещено";                  break;
         case 150: error_string=" нарушено правило FIFO";                   break;
         default:  error_string=" команда не выполнена";                    break;
     }
     return (error_string);
     return("");
  }
//===========================================================================================================

Indicators Kuklovod с кодом и 3 карзины
У вас нет доступа для просмотра вложений в этом сообщении.
Как и на чем заработать уже за первый месяц и делать это снова и снова
Регистрация и учебные материалы бесплатно.
Аватар пользователя
Николай
Модератор
 
Сообщений: 175
Зарегистрирован: 06 фев 2014, 22:31

Re: Торговая система Kuklovod.

Сообщение denis77515 » 29 июн 2014, 13:56

Николай я не профи в програмировании но вот люди добрые помогли не много ,накидал советник пока по одной корзине USD. Если вы не против,давайте переберемся на [url]h t t p : / / forum.tradelikeapro.ru/index.php?topic=6421.30[/url] там у меня уже открыта тема для этого.Если против так давайте останемся здесь, очень рад сотрудничеству. выкладываю что у меня получилось.Пока он сырой то же сегодня только закончил,так как выходной проверить не могу.
У вас нет доступа для просмотра вложений в этом сообщении.
denis77515
Участник
 
Сообщений: 11
Зарегистрирован: 27 июн 2014, 04:29

Re: Торговая система Kuklovod.

Сообщение Николай » 29 июн 2014, 14:38

Николай я не профи в програмировании

Я сам не спец изучил 2 курса по MQL сейчас практикусь :B
и ещё я буду здесь выкладывать свои наработки
а то регистрироваться не охота :Z
Последний раз редактировалось Николай 29 июн 2014, 14:47, всего редактировалось 1 раз.
Как и на чем заработать уже за первый месяц и делать это снова и снова
Регистрация и учебные материалы бесплатно.
Аватар пользователя
Николай
Модератор
 
Сообщений: 175
Зарегистрирован: 06 фев 2014, 22:31

Re: Торговая система Kuklovod.

Сообщение Николай » 29 июн 2014, 14:47

Если писать советник с 3-я корзинами сразу надо на каждую корзину свой идентификатор
а то будет конфликтовать с другими корзинами
или писать каждую корзину по отдельности
Последний раз редактировалось Николай 29 июн 2014, 15:12, всего редактировалось 1 раз.
Как и на чем заработать уже за первый месяц и делать это снова и снова
Регистрация и учебные материалы бесплатно.
Аватар пользователя
Николай
Модератор
 
Сообщений: 175
Зарегистрирован: 06 фев 2014, 22:31

Re: Торговая система Kuklovod.

Сообщение denis77515 » 29 июн 2014, 15:11

У меня была задумка сначала по отдельности написать,потом объединить все в один. Ото код сильно большой получается путаться начинаешь где, что.
denis77515
Участник
 
Сообщений: 11
Зарегистрирован: 27 июн 2014, 04:29

Re: Торговая система Kuklovod.

Сообщение Николай » 29 июн 2014, 15:17

denis77515 писал(а):У меня была задумка сначала по отдельности написать,потом объединить все в один. Ото код сильно большой получается путаться начинаешь где, что.

надо каждую строчку подписывать что она из себя представляет и какие функции она делает
так будет проще и понятней
Как и на чем заработать уже за первый месяц и делать это снова и снова
Регистрация и учебные материалы бесплатно.
Аватар пользователя
Николай
Модератор
 
Сообщений: 175
Зарегистрирован: 06 фев 2014, 22:31

Re: Торговая система Kuklovod.

Сообщение denis77515 » 29 июн 2014, 15:20

В общем вы правы,но долго это :D
denis77515
Участник
 
Сообщений: 11
Зарегистрирован: 27 июн 2014, 04:29

Re: Торговая система Kuklovod.

Сообщение denis77515 » 29 июн 2014, 15:24

Николай подскажите как написать вот это: if (timeprev==Time[0]) return(0); Ото вылазит предупреждение о возможной потери данных.
timeprev = Time[0];
denis77515
Участник
 
Сообщений: 11
Зарегистрирован: 27 июн 2014, 04:29

Re: Торговая система Kuklovod.

Сообщение Николай » 29 июн 2014, 15:53

denis77515 писал(а):Николай подскажите как написать вот это: if (timeprev==Time[0]) return(0); Ото вылазит предупреждение о возможной потери данных.
timeprev = Time[0];

Вы посмотрите на внешнюю или локальную переменную timeprev она должна быть datetime timeprev; или extern datetime timeprev=0;
а у вас может стоять int, string, bool, double,
точно не скажу нужен полностью код чтобы разобраться

вот так ни какого предупреждения нет
Код: выделить все
 datetime timeprev=Time[0];
//+------------------------------------------------------------------+
int OnInit(){
   if (timeprev==Time[0]) return(0);
   return(INIT_SUCCEEDED);
  }
Последний раз редактировалось Николай 29 июн 2014, 16:18, всего редактировалось 2 раз(а).
Как и на чем заработать уже за первый месяц и делать это снова и снова
Регистрация и учебные материалы бесплатно.
Аватар пользователя
Николай
Модератор
 
Сообщений: 175
Зарегистрирован: 06 фев 2014, 22:31

След.

Вернуться в Торговые стратегии

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron