учитесь зарабатывать селяне [Эпизод 2] ! - страница 122

 
BeerGod:
Обязательно выкладывать, с рекомендуемой парой и таймфреймом, а так же какой надо депо ?

что-то Рома застрял с презентацией! Наверно грааля со строгал что аж сам в шоке! :)

Рома!!! мы тебя ждём! 

 
vladds:

что-то Рома застрял с презентацией! Наверно грааля со строгал что аж сам в шоке! :)

Рома!!! мы тебя ждём! 

 

Только - только с сауны...

Завтра выложу. Это не грааль - это торговая система по алгоритму Илана... :-)

 
Roman.:

Только - только с сауны...

 


Как девочки???? Где фотки ????   :)))))))))))))
 
BeerGod:
Обязательно выкладывать, с рекомендуемой парой и таймфреймом, а так же какой надо депо ?

ОК! Сначала выложу с описанием и сетами для примера EURUSD.

Вплотную по выбору инструментов для реала и настроек ещё не брался по данной ТС, т.к. пока юзаю переворотный мартин по этой же самой системе, только здесь при достижении стопа, происходит усреднение в сторону стАртового ордера, а в переворотном происходит доливка с переворотом предыдущей позы, там и там на увеличенных объёмах. Я за переворотный мартин ещё раньше взялся и мне его было желание до более/менее ума довести. Довёл. Если будет профита больше, то стартану и на этом варианте Илана. Завтра  выложу в ветвь. Сильно не пинайте за код, т.к. отдельные вопросы решались в лоб, например, расчёт объёмов в зависимости от варианта усреднения (можно было прописать формулами, например, для арифметической прогрессии, я же сделал это только для варианта классического Илана, остальные виды усреднений выполнены посредством оператора case:), пример кода:

... 
// Ордер закрылся с убытком - считаем количество усреднений, новый lots, усредняем цену открытия  в ТОМ ЖЕ направлении
            // при условии, что общее количество усреднений не выше максимального по соответствующему варианту ММ для усреднения  
         
          if (Iteration <= Max_Iteration && VAR_MM == 0)                  
              // Последующие лоты открываются по множителю в соответствие с числами ФИБО           
               switch(Iteration)                                  // Заголовок switch 
                   {                                              // Начало тела switch                  
                     case 1 : Lots_New = lastLots * 1; lots = lastLots; Print("Iteration = ", Iteration, " Lots_New = ", Lots_New );break; //расчет нового объема       
                     case 2 : Lots_New = lots * 2;    Print("Iteration = ", Iteration, " Lots_New = ", Lots_New);  break;   
                     case 3 : Lots_New = lots * 3;    Print("Iteration = ", Iteration, " Lots_New = ", Lots_New);  break;      
                     case 4 : Lots_New = lots * 5;    Print("Iteration = ", Iteration, " Lots_New = ", Lots_New);  break;  
                     case 5 : Lots_New = lots * 8;    Print("Iteration = ", Iteration, " Lots_New = ", Lots_New);  break;     
                     case 6 : Lots_New = lots * 13;   Print("Iteration = ", Iteration, " Lots_New = ", Lots_New);  break;      
                    ...       
                     case 16: Lots_New = lots * 1597; Print("Iteration = ", Iteration, " Lots_New = ", Lots_New);  break;    
                     case 17: Lots_New = lots * 2584; Print("Iteration = ", Iteration, " Lots_New = ", Lots_New);  break;
                     case 18: Lots_New = lots * 4181; Print("Iteration = ", Iteration, " Lots_New = ", Lots_New);  break;
                     case 19: Lots_New = lots * 6765; Print("Iteration = ", Iteration, " Lots_New = ", Lots_New);  break;                                                   
                     case 20: Lots_New = lots * 10946;Print("Iteration = ", Iteration, " Lots_New = ", Lots_New);  break;                           
                     default: Lots_New = lots * 17711; {Iteration = 0; Print("Выход за пределы. Iteration = ", Iteration, " Lots_New = ", Lots_New ); }                      
                   }                                    // Конец тела switch      
                    
           if (Iteration <= Max_Iteration && VAR_MM == 1)
              //Последующие лоты открываются по ИЛАНУ через экспоненту: iLots = NormalizeDouble(Lots * MathPow(LotExponent, NumOfTrades), lotdecimal);
               switch(Iteration)                        // Заголовок switch 
                   {                                    // Начало тела switch    
                  // case 0 : Lots_New = lots;  Print("старт, Lots_New = ", Lots_New );break; // СТАРТ                
                     case 1 : Lots_New = lastLots * 1; lots = lastLots; Print("Iteration = ", Iteration, " Lots_New = ", Lots_New );break; //расчет нового объема                                                                                                                        
                     // расчет последующих объемов, открываемых позиций, начиная с объема ПЕРВОЙ-case 1
                     default: Lots_New = lots * MathPow(LotExponent, Iteration); Print("Iteration = ", Iteration, " Lots_New = ", Lots_New);                                                                    
                   }                                   // Конец тела switch  
                
          if (Iteration <= Max_Iteration && VAR_MM == 2)// Последующие лоты открываются в соответствие с классическим мартином - удвоение           
               switch(Iteration)                       // Заголовок switch 
                   {                                   // Начало тела switch                       
                     case 1 : Lots_New = lastLots * 1; lots = lastLots; Print("Iteration = ", Iteration, " Lots_New = ", Lots_New );break; //расчет нового объема       
                     case 2 : Lots_New = lots * 2;    Print("Iteration = ", Iteration, " Lots_New = ", Lots_New);  break;   
                     case 3 : Lots_New = lots * 4;    Print("Iteration = ", Iteration, " Lots_New = ", Lots_New);  break;      
                     case 4 : Lots_New = lots * 8;    Print("Iteration = ", Iteration, " Lots_New = ", Lots_New);  break;  
                    ...                                              
                     case 16: Lots_New = Lots * 32768;Print("Iteration = ", Iteration, " Lots_New = ", Lots_New);  break;
                     case 17: Lots_New = Lots * 65536;Print("Iteration = ", Iteration, " Lots_New = ", Lots_New);  break;                                                                  
                     default: Lots_New = lots * 65536; {Iteration = 0; Print("Выход за пределы. Iteration = ", Iteration, " Lots_New = ", Lots_New ); }                      
                   }                          
                   
         if (Iteration <= Max_Iteration && VAR_MM == 3)// Последующие лоты открываются в соответствие с членами ар прогрессии           
               switch(Iteration)                       // Заголовок switch 
                     {                                 // Начало тела switch         
                     case 1 : Lots_New = lastLots * 1; lots = lastLots; Print("Iteration = ", Iteration, " Lots_New = ", Lots_New );break; //расчет нового объема            
                     case 2 : Lots_New = lots * 3;    Print("Iteration = ", Iteration, " Lots_New = ", Lots_New );  break;   
                     case 3 : Lots_New = lots * 5;    Print("Iteration = ", Iteration, " Lots_New = ", Lots_New );  break;   
...
 
TEXX:

 Как девочки????  Где фотки ????   :)))))))))))))

 Гуд... :-)

 

Выкладываю вариант боевого (ИМХО, т.к. проблем с обработкой ошибок (реквот и т.д.) нет) Илана ИЛАН_осма_2012_NEW для реала вместе с индикатором JQS iOsMA и с сетом для оптимизации. Уровни тейков и стопов - завиртуалены, чтобы не показывать их реальное значение ДЦ. Ширина канала - динамическая, рассчитывается по индику АТР.  Код - рабочий (не окончательный вариант) - "Не является истиной в последней инстанции" -  открыт для доработки и тестирования.

Переменные  закоментированы в коде. 

Примечания:

Если торговать значением процента от баланса MaxRisk имеет не нулевое значение, например, 0,05, то  значение переменной  Lots нужно сделать равным нулю.

Значение переменной s_signal_period = 15, отвечающей за работу на соответствующем ТФ в тесте сделать  рАвным ТФ-му тестирования, например, здесь для М15 это значение равно 15.

Трал убрал, т.к. как показала практика он на мАлых ТФ-ах и тАком типе ТС - не совсем и нужен... :-)

Ограничения по времени входа в рынок  стартовым ордером не оптил, т.е. он работает постоянно:

extern int Filter.Hour=0;       //  Д-Фильтр: торговля по часам, вне этих часовых рамок новые сделки не открывать, но текущие усреднения завершать
extern int     Start=0;
extern int      End=23;


И так, можно оптить инструменты ручным перебором ТФ-ов (с М5 до Н4), т.к., как показала практика,   это лучше делать, чем оптить ТФ, т.к. при оптимизации лучшего ТФ рез-ты не всегда получаются правильные.

Сверху слева отображаются необходимые для торговли параметры, тестить по ценам открытия, в тестере видно, как происходят усреднения при превышении ширины канала, посредством нажатия паузы в тестере и через перекрестие можно смотреть, что усреднения происходят СТРОГО при превышении ширины канала: 


Тестер отказывается сохранять отчёт, поэтому прикладываю картинки одного из вариантов для евробакса тест на истории Альпарей на ТФ М15, оптимизация с начала 2010 по настоящее время:

В этом варианте происходит накрутка последующих объёмов в соответствие с числами Фибо, параметр VAR_MM = 0:

 

Буду благодарен, если кто пооптит и выложит рабочие настройки для флетовых инструментов.

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

Если ширина канала слишком большая, то мало сделок и  прибыли, если слишком мАлая, то увеличивается  вероятность слива. 

Для Иланов и Лавин, если в год под 100 %, то  это - ГУД! ИМХО!

Файлы:
_.zip  49 kb
 

Буду благодарен, если кто пооптит и выложит рабочие настройки!

ща пооптим ! :)
 
что-то пока не очень получается!
 
vladds:
что-то пока не очень получается!

Это не быстрый процесс...  :-)

Я опять же сторонник, такой доходности, которая составляет до 100 % в год - это уже для Илана/Лавины - хорошо! ИМХО!

Но не так, что дЕп, допустим, 1000 $ бьётся на 10 частей и потом последовательно  со  100 $ - старт с возможностью вырвать 1000 % и с гораздо бОльшей вероятностью слива, т.е.

торговать относительно безопасней для дЕпа, т.е. при годовой доходности около 100 % и с бОльшей вероятностью не ливануть ЭТОТ дЕп! Чем - раз 100 - слив, два - 100 - слив, три 100 - слив, четыре 100 - улетел к 2000 $ за полугодие, допустим.  Мне такая торговля не симпатична.


 
я не вижу в настройках SL и TP как их настроить?
Причина обращения: