Métiers non rentables 0 !!!!!! - page 10

 
granit77 >> :

Et le bazar de ce fil de discussion n'est soutenu que dans l'attente qu'un forestier vienne nous montrer le chemin de l'autoroute la plus proche....

Ouais... Bon, les résultats ne sont pas si mauvais, j'ai obtenu à 40% de slippage 100% d'augmentation du dépôt pendant une semaine... J'ai utilisé OsMa perverti... Il y a beaucoup de leviers, tu peux faire beaucoup de choses. Si vous me comprenez, le signal original Low High filtre Stochastique et Osma dans le même, c'est à dire IF stochastique et Osma ... En principe, si vous ne trichez pas (vous pouvez simplement augmenter 12000 à partir de 1000 pendant 2 semaines avec un drawdown de 78%), alors le résultat normal ... Maintenant, je vais essayer de faire un peu plus de magie ...

 

Un qui peut vous dire comment retirer un autolot qui serait la taille n'était pas 0,1, et avec 0,01, parce que le mien de la KIM ne veut pas calculer un pourcentage du dépôt en dessous de 200 grivnas.

Voici mon code.

string _Parameters_b_Lots = "Параметры модуля расчёта лота"; 
int LotsWayChoice = 1;     // Способ выбора рабочего лота: 
                                  //  0-фиксированный, 
                                  //  1-процент от депозита, 
                                  //  2-фракционно-пропорциональный, 
                                  //  3-фракционно-фиксированный, 
extern int LotsPercent    = 40;    // Процент от депозита (Оптимизация проведена для 1000$)
int LotsDeltaDepo  = 20;   // Коэффициент приращения депозита 
int LotsDepoForOne = 20;   // Размер депозита для одного минилота 
int LotsMax        = 10000; // Максимальное количество лотов 
( и в конце)
if( ik == 0)
     {
       Balance0 = AccountBalance();
       ik = 1;
     } 
//----
   if( ReInvest == 1)
       lotsi = Lots*AccountBalance() / Balance0; 
   else 
       lotsi = Lots; 
//----
   if( lotsi < 0.1)
     {
       lotsi = 0.01;
     } 
//----
   if( lotsi >= 0.1 && lotsi < 0.2)
       lotsi = 0.1; 
   else 
    {
     if( lotsi >= 0.2 && lotsi < 0.5)
       lotsi = 0.2; 
     else 
      { 
       if( lotsi >= 0.5 && lotsi < 1)
         lotsi = 0.5; 
       else 
        {
         if( lotsi >= 1 && lotsi < 2)
           lotsi = 1; 
         else 
          { 
           if( lotsi >= 2 && lotsi < 3)
             lotsi = 2; 
           else 
            {
             if( lotsi >= 3 && lotsi < 4)
               lotsi = 3; 
             else 
              { 
               if( lotsi >= 4 && lotsi < 5)
                 lotsi = 4; 
               else 
                {
                 if( lotsi >= 5 && lotsi <6 )
                   lotsi = 5; 
                 else 
                  { 
                   if( lotsi >= 6 && lotsi < 7)
                     lotsi = 6; 
                   else 
                    {
                     if( lotsi >= 7 && lotsi < 8)
                       lotsi=7; 
                     else 
                      { 
                       if( lotsi >= 8 && lotsi < 9)
                         lotsi = 8; 
                       else 
                        {
                         if( lotsi >= 9 && lotsi < 15)
                           lotsi = 9; 
                         else 
                          { 
                           if( lotsi >= 15 && lotsi < 20)
                             lotsi = 15; 
                           else 
                            {
                             if( lotsi >= 20 && lotsi < 25)
                               lotsi = 20; 
                             else 
                              { 
                               if( lotsi >= 25 && lotsi < 30)
                                 lotsi = 25; 
                               else 
                                {
                                 if( lotsi >= 30 && lotsi < 35)
                                   lotsi = 30; 
                                 else 
                                  { 
                                   if( lotsi >= 35 && lotsi < 40)
                                     lotsi = 35; 
                                   else 
                                    {
                                     if( lotsi >= 40 && lotsi < 45)
                                       lotsi = 40; 
                                     else 
                                      { 
                                       if( lotsi >= 45 && lotsi < 50)
                                         lotsi = 45; 
                                       else 
                                        {
                                         if( lotsi >= 50 && lotsi < 55)
                                           lotsi = 50; 
                                         else 
                                          { 
                                           if( lotsi >= 55 && lotsi < 60)
                                             lotsi = 55; 
                                           else 
                                            {
                                             if( lotsi >= 60 && lotsi < 65)
                                               lotsi = 60; 
                                             else 
                                              { 
                                               if( lotsi >= 65 && lotsi < 70)
                                                 lotsi = 65; 
                                               else 
                                                {
                                                 if( lotsi >= 70 && lotsi < 75)
                                                   lotsi = 70; 
                                                 else 
                                                  { 
                                                   if( lotsi >= 75 && lotsi < 80)
                                                     lotsi = 75; 
                                                   else 
                                                    {
                                                     if( lotsi >= 80 && lotsi < 85)
                                                       lotsi = 80; 
                                                     else 
                                                      { 
                                                       if( lotsi >= 85 && lotsi < 90)
                                                         lotsi = 85; 
                                                       else 
                                                        {
                                                         if( lotsi >= 90 && lotsi < 95)
                                                           lotsi = 90; 
                                                         else 
                                                          { 
                                                           if( lotsi >= 95 && lotsi < 100)
                                                             lotsi = 95; 
                                                           else 
                                                            {
                                                             if( lotsi >= 100)
                                                               lotsi= lotsi;/*100*/ 
                                                            }
                                                          }
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    } 
   MidLot = GetSizeLot(); 
   lotsi = NormalizeDouble( MidLot, 1); 
   total=OrdersTotal();                                        
   cbars=Bars;
   return(0);
   } 
double GetSizeLot() 
  { 
   double dLot; 
   if( LotsWayChoice == 0) 
     dLot = lotsi; 
// фиксированный процент от депозита 
   if( LotsWayChoice == 1) 
     { 
       dLot = MathCeil(AccountFreeMargin() / 10000* LotsPercent)/10; 
     } 
// фракционно-пропорциональный 
   if( LotsWayChoice == 2) 
     { 
       int k = LotsDepoForOne; 
       //----
       for(double i = 2; i <= LotsMax; i++) 
         { 
           k = k + i* LotsDeltaDepo; 
           //----
           if( k > AccountFreeMargin()) 
             { 
               dLot = ( i - 1) / 10; 
               break; 
             } 
         } 
     } 
// фракционно-фиксированный 
   if( LotsWayChoice == 3) 
     { 
       dLot = MathCeil((AccountFreeMargin() - LotsDepoForOne) / LotsDeltaDepo)/10; 
     } 
//----
   if( dLot < 0.1)  
       dLot = 0.1; 
//----
   if( dLot > LotsMax) 
       dLot = LotsMax;   
   return( dLot);  
  } 
 

ma version

//+------------------------------------------------------------------+
//| Расчет лота соотв риску и балансу                                |
//+------------------------------------------------------------------+
double CalcLotsAuto(double Risk)
{

   double LotOpt, Zalog;
   RefreshRates();
   double Marga=AccountFreeMargin();
   double Balans=AccountBalance();
   double LotMin=MarketInfo(Symbol(),MODE_MINLOT);
   double LotMax=MarketInfo(Symbol(),MODE_MAXLOT);
   double StepLot=MarketInfo(Symbol(),MODE_LOTSTEP);
   double StopLv=AccountStopoutLevel();
   int PrsMinLot=1000* LotMin;
   if( Risk<0) Risk=0;
   if( Risk>100) Risk=100; 
   if( StepLot==0.01){int step=2;}else{ step=1;}  
//---------------------------     
   Zalog=( Balans*( Risk/100));
   LotOpt=NormalizeDouble(( Zalog/1000), step);
   if( LotOpt> LotMax) LotOpt= LotMax;
   if( LotOpt< LotMin) LotOpt= LotMin;
   //if(Marga<Sredstva/2){return(0);}
   return( LotOpt);
}
 

Hoper23

Une amélioration mineure a donné les résultats suivants : du 01.05.08 au 01.12.08, bénéfice net 6772 avec LotsPercent=2. Dépôt initial = 1000, drawdown relatif = 26.38%. Perte = 72, uniquement du fait d'un commerce non terminé. Un total de 186 échanges.


 
Un remaniement en studio !
 
Je ne donnerai la finalisation qu'à l'auteur de l'expert s'il est intéressé.
 
khorosh >> :
Je ne donnerai la reprise à l'auteur de l'expert que s'il se montre intéressé.

Vous n'avez pas besoin d'un code. Partagez les principes.

 
granit77 >> :

Vous n'avez pas besoin d'un code. Partagez les principes.

En tant que membre actif du forum, je peux également vous envoyer le code, il suffit de me donner l'adresse.
 

Mes frères, je me suis amusé la nuit, et je suis choqué. Quoi qu'il en soit, avec le filtrage stochastique et OsMoy, vous pouvez gagner beaucoup d'argent. J'ai une mise de départ de 1000 livres de 10 à 28, ce qui donne 21000 avec un drawdown de 60.66%!!!!.

Mais 2% de mon dépôt pour faire du commerce... c'est un peu waaapche... Et pour le raffinement, on pourrait faire un échange. Granite et KHorosh, donnez-nous vos savons. Le mien est bghoper@mail.ru

 
xrust >> :

ma version

Je ne comprends pas du tout comment vous l'appliquez...