Avalanche - Seite 520

 
DJDJ22:

Sie brauchen keine Geschichte. Wir sind Gentlemen, wir nehmen Sie beim Wort. Nur die Ergebnisse in Form von mindestens einmonatigen Ergebnissen. Ich bestehe nicht wirklich darauf. Einfach so:

Hier getestet auf real vom 17.04.2015-07.05.2015. Dies ist die vorherige Version, die einen Monat lang nicht funktionierte. Ich habe sie deaktiviert, weil ich eine neue, verbesserte Netting-Version mit weniger Drawdown erstellt und am 14.05.2015 auf Real gestellt habe.

 
khorosh:

Hier wurde auf real vom 17.04.2015-07.05.2015 getestet. Dies ist die vorherige Version, Monat nicht funktioniert hat, deaktiviert es, wie ich eine neue verbesserte Netting-Version mit weniger Drawdown und legte es auf real am 14.05.2015.

Danke. Einfach großartig für eine Schwalbe. Viel Glück, ich habe mich von Martin eher schmachvoll getrennt. Ich habe beschlossen, nicht zu graben.
 
khorosh:

Wie viele Winter, wie viele Jahre). Herzlichen Glückwunsch zu Ihrer Rückkehr nach Mütterchen Russland! Ich bin wieder bei der Lawine.


Danke für die Glückwünsche - Maya - wenn mich jemand vor einem Jahr gefragt hätte, ob ich glaube, dass ich ein Teil Russlands werden würde, hätte ich gelacht, aber da musste ich ein bisschen herumfahren :)

Und was für ein Glück wir im Vergleich zum Donbass haben! ... Mozgovoy wurde getötet, ich habe ihn hier getroffen, ihm die Hand geschüttelt, uns besucht ... Das ist das dritte Mal, dass ich meinen Wohnsitz gewechselt habe, ohne meine Couch zu verlassen :)

Aber hier ... ändert sich nichts...

Ich sehe - alles Neue ist gut vergessenes Altes :) Die Welt entwickelt sich in einer Spirale, und wir merken es, also werden wir alt...

 
elmucon:

Danke für die Glückwünsche - Mann - wenn man dich vor einem Jahr gefragt hätte, ob du glaubst, dass du ein Teil Russlands werden würdest, hätte ich gelacht, aber hier bist du ;_ Ich musste sogar ein bisschen herumfahren :)

Und wie glücklich sind wir im Vergleich zum Donbass! ... Mozgovoy wurde getötet, ich habe ihn hier getroffen, ihm die Hand geschüttelt, uns besucht ... Das ist das dritte Mal, dass ich meinen Wohnsitz gewechselt habe, ohne meine Couch zu verlassen :)

Aber hier ... ändert sich nichts...

Schauen Sie - alles Neue ist gut vergessenes Altes :) Die Welt entwickelt sich in einer Spirale und wir merken es, also werden wir alt ...


++++++++
 
khorosh:

Hier wurde auf real vom 17.04.2015-07.05.2015 getestet. Dies ist die vorherige Version, Monat nicht funktioniert hat, deaktiviert es, wie ich eine neue verbesserte Netting-Version mit weniger Drawdown und legte es auf real am 14.05.2015.

Yuri, guten Tag. Arbeitet der Berater? Sie sprachen von einer Geheimformel zur sicheren Erhöhung der Menge. Bleibt es ein Geheimnis? Haben Sie einen EA entwickelt. Ich möchte die Berechnung hinzufügen.

 
Meine Herren, ich habe einen Vorschlag. Der Wert des MA-Neigungswinkels aus einem der Zeitrahmen 1-2-3 wird vom Indikator über die globale Variable des Terminals an den Expert Advisor übertragen. Basierend auf diesem Wert können Sie verschiedene Lot-Erhöhungs-Multiplikatoren für verschiedene Richtungen in Stop-Orders nehmen. Dies wird dazu beitragen, den Drawdown zu reduzieren und die Gewinne zu steigern. Es wird auch möglich sein, unterschiedliche Werte des virtuellen Trailing Stops während einer Flat und eines Trends zu nehmen, wenn der Berater den gesamten positiven Gewinn einer Gruppe von Aufträgen streift, oder damit er mit unterschiedlichen Take-Profit-Werten arbeitet. Und um keine neue Serie von Aufträgen zu starten, wenn die Steigung während einer Flat nahe bei Null liegt, ist es einfach, einen kleinen Multiplikator festzulegen, um die Lots während einer Flat zu erhöhen. Ich habe den Indikator von jemandem überarbeitet, er erfüllt seine Aufgabe, der Wert wird über die globale Ebene an jeden Expert Advisor übertragen. Das Problem ist, dass ich neu in der Programmierung bin und der Indikator ungeschickt umgeschrieben wird. Es ist notwendig, dass der Indikator auch für Läufe im Tester durch iCustom verwendet werden kann (mit den Puffern muss etwas getan werden, werde ich selbst sehr lange überlegen). Es kann sehr gut sein, dass sich Avalanches Leistung dadurch verbessert. Ich schlage auch vor, die Leistung verschiedener Avalanche-Versionen anhand des Werts von Dollar pro Arbeitsstunde pro 0,01-Lot zu bewerten, der ursprünglich in den Einstellungen festgelegt wurde (SMDB - Broker Machine Milking Speed :-) ©. Auch das Verhältnis des Drawdowns zu diesem Wert. Für viele Fahrzeuge ist diese Anzeige nützlich. Expert Advisors können den Beginn eines Trends anhand der Winkeldifferenz zwischen EMA und SMA irgendwo auf den letzten 5---9 Balken besser erkennen als bei Verwendung anderer Indikatoren.
Der Indikatorcode ist beigefügt.
 //+------------------------------------------------------------------+
//|                                                   MA_Angle_E.mq4 |
//|                                                                  |
//+------------------------------------------------------------------+
/*


Период 13, 35 - значение порогового угла, ема.  На 5-минутках.
Можно 10 и 39.
*/
#property   copyright "Mr_A"
//---- indicator settings
#property   indicator_chart_window   
#property   indicator_buffers 5    
#property indicator_color1 Red
#property indicator_color2 LimeGreen
//#property  indicator_color1  LimeGreen
//#property  indicator_color2  Yellow
//#property  indicator_color3 FireBrick
#property   indicator_width1 1
#property   indicator_width2 2
//----
double CrossUp[];
double CrossDown[];
double prevtime;
double Range,AvgRange;
double fasterMAnow,fasterMAprevious,fasterMAafter;
double mediumMAnow,mediumMAprevious,mediumMAafter;
double slowerMAnow,slowerMAprevious,slowerMAafter;
//----
extern int FasterMA    =     5 ;
extern int FasterShift =   - 5 ;
extern int FasterMode= 1 ; // 0 = sma, 1 = ema, 2 = smma, 3 = lwma
extern int MediumMA    =   20 ;
extern int MediumShift =   - 5 ;
extern int MediumMode= 1 ; // 0 = sma, 1 = ema, 2 = smma, 3 = lwma
extern int SlowerMA    =   34 ;
extern int SlowerShift =     0 ;
extern int SlowerMode=     1 ; // 0 = sma, 1 = ema, 2 = smma, 3 = lwma
extern int SoundAlert=     1 ; // 0 = disabled
//#property  indicator_width3  

//---- indicator parameters
//extern int MAPeriod=21;
extern double MA_Period = 10 ;
extern double Coef = 0.0 ;
extern int SetPrice = 0 ;
//extern string  m = "--Moving Average Types--";
//extern string  m1 = " 1 = EMA";
//extern string  m2 = " 2 = SMMA";
//extern string  m3 = " 3 = LWMA";
//extern string  m4 = " 4 = LSMA";
extern int MA_Type = 1 ; //0=SMA, 1=EMA, 2=SMMA, 3=LWMA, 4=LSMA
//extern string  p0 = " 0 = close";
//extern string  p1 = " 1 = open";
//extern string  p2 = " 2 = high";
//extern string  p3 = " 3 = low";
//extern string  p4 = " 4 = median(high+low)/2";
//extern string  p5 = " 5 = typical(high+low+close)/3";
//extern string  p6 = " 6 = weighted(high+low+close+close)/4";
extern int MA_AppliedPrice = 0 ;   //0=close, 1=open, 2=high, 3=low, 4=median(high+low)/2, 5=typical(high+low+close)/3,
                                 //6=weighted(high+low+close+close)/4 --- способы расчёта значений
extern double AngleTreshold= 2 ; //чем больше значение, тем круче д.б. тренд для сигнала
extern int PrevMAShift= 1 ;
extern int CurMAShift= 0 ;

int MA_Mode;
string strMAType;
int ExtCountedBars= 0 ;   //сумма баров
//---- indicator buffers -- три массива буферов создаются
//double DownBuffer[];
//double ZeroBuffer[];
double LiniaBuffer[];
string GP_MA_E= "GV_GP_MA_E" ;
string GP_MA_S= "GV_GP_MA_S" ;
string GP_MA_Napr= "GV_GP_MA_Napr" ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
   GlobalVariableSet (GP_MA_E, 0 );
   GlobalVariableSet (GP_MA_S, 0 );
   GlobalVariableSet (GP_MA_Napr, 0 );
//---- 2 additional buffers are used for counting.
   IndicatorBuffers( 4 );   //было 3        
//---- drawing settings
   SetIndexStyle( 0 , DRAW_LINE );  
   SetIndexShift( 0 , 0 );
   IndicatorDigits(MarketInfo( Symbol (),MODE_DIGITS)+ 2 );   //IndicatorDigits      Установка формата точности (количество знаков
   //после десятичной точки) для визуализации значений индикатора.
   
   SetIndexStyle( 3 , DRAW_ARROW ,EMPTY); //0 заменил на 2
   SetIndexArrow( 3 , 233 );
   SetIndexBuffer ( 3 ,CrossUp);
   SetIndexStyle( 4 , DRAW_ARROW ,EMPTY); //1 заменил на 3
   SetIndexArrow( 4 , 234 );
   SetIndexBuffer ( 4 ,CrossDown);
                                                         
//********SetIndexShift(0, MA_Shift);

int draw_begin = 0 ;
SetIndexDrawBegin( 0 , draw_begin); // с какого элемента начинаются значимые данные индикаторного массива.
SetIndexBuffer ( 0 , LiniaBuffer); //сделали индик. массивом
//---- 3 indicator buffers mapping  --- карта буферов
 // if(!SetIndexBuffer(0,UpBuffer) && !SetIndexBuffer(1,DownBuffer) && !SetIndexBuffer(2,ZeroBuffer))
     // Print("cannot set indicator buffers!");
switch (MA_Type)
   {
       case 1 : strMAType= "EMA" ; MA_Mode= MODE_EMA ; break ;
       case 2 : strMAType= "SMMA" ; MA_Mode= MODE_SMMA ; break ;
       case 3 : strMAType= "LWMA" ; MA_Mode= MODE_LWMA ; break ;
       case 4 : strMAType= "LSMA" ; break ;
       default : strMAType= "SMA" ; MA_Mode= MODE_SMA ; break ;
   }
//---- name for DataWindow and indicator subwindow label
   //IndicatorShortName("MA_" + strMAType+"_Angle("+MA_Period+","+AngleTreshold+","+PrevMAShift+","+CurMAShift+")");
   return ( 0 );
      
} /*
//+------------------------------------------------------------------+
//| LSMA with PriceMode                                              |
//| PrMode  0=close, 1=open, 2=high, 3=low, 4=median(high+low)/2,    |
//| 5=typical(high+low+close)/3, 6=weighted(high+low+close+close)/4  |
//+------------------------------------------------------------------+
double LSMA(int Rperiod, int prMode, int shift)
{
   int i, mshift;
   double sum, pr;
   int length;
   double lengthvar;
   double tmp;
   double wt;

   length = Rperiod;
 
   sum = 0;
   for(i = length; i >= 1  ; i--)
   {
     lengthvar = length + 1;
     lengthvar /= 3;
     tmp = 0;
     mshift = length-i+shift;
     switch (prMode)
     {
     case 0: pr = Close[mshift];break;
     case 1: pr = Open[mshift];break;
     case 2: pr = High[mshift];break;
     case 3: pr = Low[mshift];break;
     case 4: pr = (High[mshift] + Low[mshift])/2;break;
     case 5: pr = (High[mshift] + Low[mshift] + Close[mshift])/3;break;
     case 6: pr = (High[mshift] + Low[mshift] + 2 * Close[mshift])/4;break;
     }
     tmp = ( i - lengthvar)*pr;
     sum+=tmp;
    }
    wt = MathFloor(sum*6/(length*(length+1))/Point)*Point;
    return(wt);
}*/
//+------------------------------------------------------------------+
//| The angle for MA                                                |
//+------------------------------------------------------------------+
int start()
{
   double fCurMA, fPrevMA;
   double fCurMA_S, fPrevMA_S;
   double fAngle, fAngle_S, mFactor, dFactor; //mFactor - множитель для йены либо остальных валют
   int nLimit, i, n;                   //dFactor - величина обратная радиану
   int nCountedBars;
   ExtCountedBars = IndicatorCounted();
   if (ExtCountedBars < 0 ) return (- 1 );
   if (ExtCountedBars > 0 ) ExtCountedBars--;
   ema();
   //double angle;  //не использовано
   int ShiftDif;
   string Sym;
   if (CurMAShift >= PrevMAShift)
   {
       Print ( "Error: CurMAShift >= PrevMAShift" );
      PrevMAShift = 6 ;
      CurMAShift = 0 ;      
   }  
   nCountedBars = IndicatorCounted(); //Функция возвращает кол-во баров, не измененных после посл. вызова индикатора.
   if (nCountedBars< 0 ) 
       return (- 1 );
   if (nCountedBars> 0 ) 
      nCountedBars--; //---- last counted bar will be recounted
   nLimit = Bars -nCountedBars; //Bars - количество баров на текущем графике;
   dFactor = 3.14159 / 180.0 ;
   mFactor = 1000.0 ;
   Sym = StringSubstr ( Symbol (), 3 , 3 ); //отрезание первых трёх символов из названия пары
   if (Sym == "JPY" ) mFactor = 10.0 ;   //для йены свои особенные настройки
   ShiftDif = PrevMAShift-CurMAShift;   //на сколько значение изменилось
   for (i= 0 ; i<nLimit; i++) //---- main loop
   {
       if (MA_Type == 4 ) //не использовать
      {
         //fCurMA=LSMA(MA_Period,MA_AppliedPrice, i+CurMAShift);   //текущее значение 
         //fPrevMA=LSMA(MA_Period,MA_AppliedPrice, i+PrevMAShift); //предыдущее значение
      }
       else //вот это использовать
      {
        fCurMA= iMA ( NULL , 0 ,MA_Period, 0 ,MA_Mode,MA_AppliedPrice,i+CurMAShift); //значения для текущего
        fPrevMA= iMA ( NULL , 0 ,MA_Period, 0 ,MA_Mode,MA_AppliedPrice,i+PrevMAShift); //и предыдущего баров
      }
      fAngle = (fCurMA - fPrevMA)/ShiftDif;   //здесь тангенс угла получается
       // take ArcTan of value to get the angle in radians and convert to degrees
      fAngle = mFactor * MathArctan (fAngle) / dFactor * F146_Koeff(); //тут сам угол высчитывается; 
       if (i == 0 )
      {
         GlobalVariableSet (GP_MA_E, fAngle);
      }
   }
   nCountedBars = IndicatorCounted(); //Функция возвращает кол-во баров, не измененных после посл. вызова индикатора.
   if (nCountedBars< 0 ) 
       return (- 1 );
   if (nCountedBars> 0 ) 
      nCountedBars--; //---- last counted bar will be recounted
   nLimit = Bars -nCountedBars; //Bars - количество баров на текущем графике;
   ShiftDif = PrevMAShift-CurMAShift;   //на сколько значение изменилось
   for (n= 0 ; n<nLimit; n++)
   {
      fCurMA_S= iMA ( NULL , 0 ,MA_Period, 0 , MODE_SMA ,MA_AppliedPrice,n+CurMAShift); //значения для текущего
      fPrevMA_S= iMA ( NULL , 0 ,MA_Period, 0 , MODE_SMA ,MA_AppliedPrice,n+PrevMAShift); //и предыдущего баров//MODE_SMA
      fAngle_S = (fCurMA_S - fPrevMA_S)/ShiftDif;   //здесь тангенс угла получается
      fAngle_S = mFactor * MathArctan (fAngle_S) / dFactor * F146_Koeff(); //тут сам угол высчитывается
       if (n == 0 )
      {
         GlobalVariableSet (GP_MA_S, fAngle_S);
      }
   }
   //второй индикатор------------------------------ - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   int d,counter;
   int counted_bars=IndicatorCounted();
   if (counted_bars< 0 ) return (- 1 );
   if (counted_bars> 0 ) counted_bars--;
   int limit= Bars -counted_bars;
   if (counted_bars== 0 ) limit-= 1 + 9 ;
//----   
   for (d= 0 ; d<=limit; d++)
     {
      counter=d;
      Range= 0 ;
      AvgRange= 0 ;
       for (counter=d;counter<=d+ 9 ;counter++)
        {
         AvgRange=AvgRange+ MathAbs (High[counter]-Low[counter]);
        }
      Range=AvgRange/ 10 ;
       //----       
      fasterMAnow      = iMA ( NULL , 0 , FasterMA, FasterShift, FasterMode, PRICE_CLOSE , d+ 1 );
      fasterMAprevious = iMA ( NULL , 0 , FasterMA, FasterShift, FasterMode, PRICE_CLOSE , d+ 2 );
      fasterMAafter    = iMA ( NULL , 0 , FasterMA, FasterShift, FasterMode, PRICE_CLOSE , d- 1 );
       //----      
      mediumMAnow      = iMA ( NULL , 0 , MediumMA, MediumShift, MediumMode, PRICE_CLOSE , d+ 1 );
      mediumMAprevious = iMA ( NULL , 0 , MediumMA, MediumShift, MediumMode, PRICE_CLOSE , d+ 2 );
      mediumMAafter    = iMA ( NULL , 0 , MediumMA, MediumShift, MediumMode, PRICE_CLOSE , d- 1 );
       //----      
      slowerMAnow      = iMA ( NULL , 0 , SlowerMA, SlowerShift, SlowerMode, PRICE_CLOSE , d+ 1 );
      slowerMAprevious = iMA ( NULL , 0 , SlowerMA, SlowerShift, SlowerMode, PRICE_CLOSE , d+ 2 );
      slowerMAafter    = iMA ( NULL , 0 , SlowerMA, SlowerShift, SlowerMode, PRICE_CLOSE , d- 1 );
       //----      
       if ((fasterMAnow>slowerMAnow && 
         fasterMAprevious<=slowerMAprevious && 
         fasterMAafter>slowerMAafter && 
         mediumMAnow>slowerMAnow)
         || 
         (fasterMAnow>slowerMAnow && 
         mediumMAnow>slowerMAnow && 
         mediumMAprevious<=slowerMAprevious && 
         mediumMAafter>slowerMAafter))
        {
         CrossUp[d]=Low[i]-Range* 0.5 ;
        }
       if ((fasterMAnow<slowerMAnow && 
         fasterMAprevious>=slowerMAprevious && 
         fasterMAafter<slowerMAafter && 
         mediumMAnow<slowerMAnow)
         || 
         (fasterMAnow<slowerMAnow && 
         mediumMAnow<slowerMAnow && 
         mediumMAprevious>=slowerMAprevious && 
         mediumMAafter<slowerMAafter))
        {
         CrossDown[d]=High[i]+Range* 0.5 ;
        }
     }
   if ((CrossUp[ 0 ]> 2000 ) && (CrossDown[ 0 ]> 2000 )) { prevtime= 0 ; }
   if ((CrossUp[ 0 ]==Low[ 0 ]-Range* 0.5 ) && (prevtime!=Time[ 0 ]) && (SoundAlert!= 0 ))
   
     {
      prevtime=Time[ 0 ];
       Alert ( Symbol (), " 3 MA Cross Up @  Hour " ,Hour(), "  Minute " ,Minute());
       //глобалку менять здесь
     }
   if ((CrossDown[ 0 ]==High[ 0 ]+Range* 0.5 ) && (prevtime!=Time[ 0 ]) && (SoundAlert!= 0 ))
     {
      prevtime=Time[ 0 ];
       Alert ( Symbol (), " 3 MA Cross Down @  Hour " ,Hour(), "  Minute " ,Minute());
       //глобалку менять здесь
     }
//Comment("  CrossUp[0]  ",CrossUp[0]," ,  CrossDown[0]  ",CrossDown[0]," ,  prevtime  ",prevtime);
//Comment("");
   return ( 0 );
  }
//------------------------------------------------------------
void ema() {
   double pr;  
   if (Coef == 0.0 ) { 
      pr = 2.0 /(MA_Period+ 1 );
   } else {
      pr = Coef;
   }
   int pos = Bars - 2 ;
   if (ExtCountedBars > 2 ) pos = Bars - ExtCountedBars - 1 ;
//---- main calculation loop
   while (pos >= 0 ) {
       if (pos == Bars - 2 ) 
         LiniaBuffer[pos+ 1 ] = (Open[pos+ 1 ]+Close[pos+ 1 ])/ 2 ;
      LiniaBuffer[pos] = GetPrice(pos)*pr+LiniaBuffer[pos+ 1 ]*( 1 -pr);
           pos--;
   }
}


//-------------------------------------------------------------------------------------------------------------------

//+------------------------------------------------------------------+
double GetPrice( int Shift) {
   double price;
//----
   switch (SetPrice) {
       case 0 :  price = Close[Shift]; break ;
       case 1 :  price = Open[Shift]; break ;
       case 2 :  price = High[Shift]; break ;
       case 3 :  price = Low[Shift]; break ;
       case 4 :  price = (High[Shift]+Low[Shift])/ 2.0 ; break ;
       case 5 :  price = (High[Shift]+Low[Shift]+Close[Shift])/ 3.0 ; break ;
       case 6 :  price = (High[Shift]+Low[Shift]+ 2 *Close[Shift])/ 4.0 ; break ;
       case 7 :  price = (Open[Shift]+High[Shift]+Low[Shift]+Close[Shift])/ 4.0 ; break ;
       case 8 :  price = (Open[Shift]+Close[Shift])/ 2.0 ; break ;
       default : price = 0.0 ;
   }
//----
   return (price);
}
//=====================================================================================================//
//     ------------------ F146___ПОПРАВОЧНЫЕ КОЭФФИЦИЕНТЫ ДЛЯ РАЗНЫХ ТАЙМФРЕЙМОВ ------------------- 
//=====================================================================================================//
double F146_Koeff()
{
   switch ( Period ())
   {
       case PERIOD_M1 :     return ( 12.0 );
       case PERIOD_M5 :     return ( 12.0 );
       case PERIOD_M15 :   return ( 2.5 );
       case PERIOD_M30 :   return ( 0.8 );
       case PERIOD_H1 :     return ( 0.33 );
       case PERIOD_H4 :     return ( 0.55 );
       case PERIOD_D1 :     return ( 0.15 );
       case PERIOD_W1 :     return ( 0.2 );
       case PERIOD_MN1 :   return ( 0.09 );
   }
}
 
Ftor_007:
Meine Herren, ich möchte Ihnen einen Vorschlag machen. Der Indikator sendet an den Expert Advisor über eine globale Variable des Terminals den Wert des MA-Neigungswinkels aus einem der 1-2-3 Zeitrahmen. Auf der Grundlage dieses Wertes können wir verschiedene Multiplikatoren der Loserhöhung für verschiedene Richtungen in Stop-Aufträgen nehmen. Dies wird dazu beitragen, den Drawdown zu verringern und den Gewinn zu erhöhen. Sie können auch unterschiedliche Werte für den virtuellen Trailing-Stop für ein Flat und einen Trend nehmen, wenn der Expert Advisor den Gesamtgewinn einer Gruppe von Aufträgen abgreift oder wenn er mit unterschiedlichen Take-Profit-Werten arbeitet. Und wir sollten keine neue Serie von Aufträgen beginnen, wenn der Neigungswinkel während des Flats nahe Null ist. Ich habe den Indikator von jemandem umgestaltet; der Wert wird über global an jeden EA übergeben. Das Problem ist, dass ich in letzter Zeit programmiert habe und der Indikator schlecht umgeschrieben ist. Es ist notwendig, den Indikator zu aktivieren, um im Tester über iCustom verwendet werden (ich sollte etwas mit Puffern zu tun, es wird mich zu lange dauern, um es herauszufinden). Es kann durchaus sein, dass sich die Leistung der Avalanche dadurch verbessert. Ich schlage auch vor, die Leistung der verschiedenen Versionen von Avalanche durch den Wert von Dollar pro Stunde Arbeit pro 0,01 Lot zunächst in den Einstellungen (CMDB - Machine Milking Broker Speed :-)©. Auch das Verhältnis der Inanspruchnahme zu diesem Wert.
Der Code des Indikators ist beigefügt.
Die Frau meines Klassenkameraden in den schwierigen, aber fröhlichen 90er Jahren fragte: "Erzählen Sie mir nicht vom Benzinverbrauch pro 100 km, sagen Sie mir, wie hoch der Verbrauch des Autos in Rubel pro Tag ist?
 
Witze sind Witze, aber für diesen TS ist es möglich, den Schutz gegen den Verlust einer Einlage zu stärken und die Rentabilität zu erhöhen. Alles, was es braucht, ist weniger Überschwemmung und mehr Code.
 
Ftor_007:
Der Witz geht auf mich, aber bei diesem TS ist es möglich, den Schutz gegen den Verlust einer Einlage zu verstärken und die Rentabilität zu erhöhen. Alles, was Sie dafür brauchen, ist weniger Überschwemmung und mehr Code.

Teilen wir die Aufgaben auf: Ich mache weniger Fluffing, Sie mehr Coding.

Fast hätte ich es vergessen: Ich bin bereit, Ihnen bei der Programmierung zu helfen, wenn Sie keinen Erfolg haben.

 

Der Drawdown ist mit zwei Auftragskorridoren - extern und intern, jeweils mit geometrischer und arithmetischer Progression des Lotwachstums - viel geringer geworden. Während eines Flats gibt es nicht mehr eine große Menge an Lots, die Wahrscheinlichkeit von MC ist ebenfalls reduziert. USDJPY liefert die besten Ergebnisse. Sobald ich in der Lage sein werde, den Indikator in die Expertenfunktion einzufügen, werde ich versuchen, die Rentabilität zu erhöhen. Die Einlage im Testgerät wurde auf 70 $, Lot 0,01 festgelegt.