学习如何赚取村民的钱 [第2集] ! - 页 157

 
BeerGod:
重点是,我想摆脱浇头之间的固定距离,让它们成为动态的,在越过相反的线时关闭(在相反的信号下)。

我根据ATR的指示,做了一个动态的通道宽度。到目前为止,我一直在micro-real上使用这个(反转的)Avalanche型方案(反转的martin),与Ilan一起使用这个分支的设置。还没有在伊兰测试过这个方案。我的入场方式不是通过布林,而是通过OSMA指标。


代码计算出平均化通道的宽度,达到这个宽度后,对增加的体积进行平均化。

extern int Period_ATR = 30;       // значение АТР для расчета динамического канала
extern double Mul_TP = 4.0;       // множитель целевой  прибыли в единицах волатильности (АТР)
extern double Mul_Sl = 0.8;       // множитель защитной  остановки с последующим производством усреднения позиции при ее сработке уже 
                                  // увеличенным лотом в единицах волатильности (АТР)
... 
//-----------------------------------------------------расчет динамического канала----------------------------    
    if (Symbol() == "GBPJPY" || Symbol() == "EURJPY" || Symbol() == "USDJPY" || Symbol() == "CHFJPY" ||  Symbol() == "NZDJPY" 
        ||  Symbol() == "USDRUR") 
         {                 
           channel = (iATR(Symbol(),PERIOD_D1,Period_ATR,1)*1000)*Mul_Sl;                 
           StopLossPips = NormalizeDouble(channel,0);                                                                                                         
         }       
    else
         {                 
           channel = 10* (iATR(Symbol(),PERIOD_D1,Period_ATR,1)*10000/3)*Mul_Sl;                 
           StopLossPips = NormalizeDouble(channel,0);                                                                                                         
         }               
          
    if (Symbol() == "XAGUSD")  // || Symbol() == "EURGBP")   StopLossPips = StopLoss;    // т.к. волатильность (по АТР) другая (выше)
         {                 
           channel = (iATR(Symbol(),PERIOD_D1,Period_ATR,1)*100)*Mul_Sl;                 
           StopLossPips = NormalizeDouble(channel,0);                                                                                                         
         }       
     if (Symbol() == "XAUUSD")  // || Symbol() == "XAUUSD" || Symbol() == "EURGBP")   StopLossPips = StopLoss;    // т.к. волатильность (по АТР) другая (выше)
         {                 
           channel = (iATR(Symbol(),PERIOD_D1,Period_ATR,1)*100)*Mul_Sl;   // Большая волатильность, поэтому умножение на 10.              
           StopLossPips = NormalizeDouble(channel,0);                                                                                                         
         }             
       
     TakeProfitPips=NormalizeDouble(StopLossPips*Mul_TP,0);  // расчет уровня тейка для всех инструментов по заданному значению динамического стопа        
                          
 

谢谢,我将进行实验。一般来说,如果你合理地加注,它是有效的。


 
BeerGod:

谢谢,我将进行实验。一般来说,如果你合理地进行补货,是有用处的。


不客气。当然!IMHO!

我们在这里谈论的不是补给,我们谈论的是平均数--那是如果你在考虑伊兰那样的消耗......:-)

一旦我优化了外部变量,并为现实世界准备了一个活的版本,我就会发布一个报告

我也可以在布林带上做一个起手的条目...

 
我决定从头开始写我的 "Illan",这是一个有风险的交易,但风险是合理的,我决定使用bollejder进行输入,现在我必须做一个明智的平均分配,以保持系统的最低存款。
 
BeerGod:
我决定从头开始写我的 "Illan",这是一个有风险的交易,但风险是合理的,我决定使用bollejder作为一个入口点,现在我必须做一个明智的平均数,所以该系统将以最小的存款工作。

我将把我的Avalanche(反转和加法)的平均方案一对一地转移到Ilan(姿势的平均价格)上,我将使用变体。我也可能做一个关于布林格的启动程序...目前在OSME上。

我有一个这样的代码。

extern int Max_Iteration = 36;    // Максимальное количество итераций (ордеров) в мартине 
extern int k = 2;                 // с какой итерации тралим
extern int VAR_MM = 0;            // используемый вариант MM в соотв-ии:
                                  // 0 = множитель с числами ФИБО; 
                                  // 1 - по Илану в соответствие с LotExponent 
                                  // 2 - классический мартин - удвоение предыдущего объема
                                  // 3 - мн по ар-ой прогрессии 
                                  // 4 - мартин по схеме домножения предпредыдущего объёма на 2, т.е. 1,2,3,4,6,8,12,16,24,32
extern double LotExponent = 1.1;  // на сколько умножать стартовый лот в степени - схема по Илану          
....
 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 7 : Lots_New = lots * 21;   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 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;      
                     case 4 : Lots_New = lots * 7;    Print("Iteration = ", Iteration, " Lots_New = ", Lots_New );  break;  
                     case 5 : Lots_New = lots * 9;    Print("Iteration = ", Iteration, " Lots_New = ", Lots_New );  break;     
                ...
                     
                     case 57: Lots_New = lots * 113;  Print("Iteration = ", Iteration, " Lots_New = ", Lots_New );  break; 
                     case 58: Lots_New = lots * 115;  Print("Iteration = ", Iteration, " Lots_New = ", Lots_New );  break;        
                     default: Lots_New = lots * 117;  {Iteration = 0; Print("Выход за пределы. Iteration = ", Iteration, " Lots_New = ", Lots_New ); }                       
                   }                                   // Конец тела switch                                                      
              
               if (Iteration <= Max_Iteration && VAR_MM == 4) // мартин по схеме домножения предпредыдущего объёма на 2, т.е. 1,2,3,4,6,8,12,16,24,32             
               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 * 4;    Print("Iteration = ", Iteration, " Lots_New = ", Lots_New);  break;  
                   ...  
                    
                     case 31: Lots_New = lots * 49152;Print("Iteration = ", Iteration, " Lots_New = ", Lots_New);  break;
                     case 32: Lots_New = lots * 65536;Print("Iteration = ", Iteration, " Lots_New = ", Lots_New);  break;
                     default: Lots_New = lots * 98304;{Iteration = 0; Print("Выход за пределы. Iteration = ", Iteration, " Lots_New = ", Lots_New ); }  
                   }                          
      
 
谢谢你的代码,它们给了我一个想法,尽管我会重写代码以适应我的逻辑,我应该试验一下动态平均,那么奇迹就有可能)这个系统有潜力......是的,这是故事的一部分,但这都是关于平均距离(正确的计算)的。
 
它对历史有作用吗?也许现在是时候去寻找引言的来源了?
 

你好,村民们!!!。

https://www.mql5.com/ru/forum/142073/page2

 
rentik:

你好,村民们!!!。

https://www.mql5.com/ru/forum/142073/page2


Priva!

祝贺你的女儿出生!

干得好!

 
elmucon:

ARBITRAGE是一件有趣的事情

同意!这是格兰德资本的季节性 差价交易 的报告。真实就在眼前...

附加的文件:
1.zip  9 kb