거래 손실 0!!!!!! - 페이지 10

 
granit77 >> :

예, 그리고 우리는 산림 관리인이 와서 가장 가까운 고속도로의 출구를 보여줄 것이라는 기대에서만이 주제의 시장을 지원합니다 ...

네... 글쎄요, 결과는 그렇게 우울하지 않습니다. 40% 감소로 일주일 동안 디포 100% 증가를 달성했습니다... 저는 비뚤어진 OSMA를 사용했습니다... 다행히도 레버가 많이 있습니다. 많이 흔들 수 있습니다. 누가 나를 이해합니까? 그러면 원래의 Low High 신호와 함께 Stochastic 및 Osma 필터가 그 안에 있습니다. 즉, Stochastic 및 Osma IF ... 원칙적으로 뻔뻔스럽지 않으면 (단순히 1000에서 12000을 올릴 수 있습니다 2주 만에 78% 감소), 정상적인 결과...좀 더 생각해 보겠습니다...

 

그리고 누가 자동 추첨을 철회하여 크기가 0.1이 아니라 0.01부터인지 알려줄 것입니다. KIM의 내 원자는 200 그린 미만의 창고 비율을 계산하고 싶지 않습니다.

여기 내 코드가 있습니다-

 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 ) ;  
  } 
 

내 버전

 //+------------------------------------------------------------------+
//| Расчет лота соотв риску и балансу                                |
//+------------------------------------------------------------------+
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 ) ;
}
 

호퍼23

약간의 개선을 통해 다음과 같은 결과를 얻었습니다. 01.05.08에서 01.12.08 사이의 순이익은 6772이고 LotPercent=2입니다. 초기 보증금 = 1000, 상대 드로다운 26.38%. 손실=-72, 완료되지 않은 거래에서만 발생합니다. 총 186건의 거래가 있습니다.


 
스튜디오에서 일하세요!
 
나는 전문가의 저자가 관심을 보일 경우에만 수정본을 줄 것입니다.
 
khorosh >> :
나는 전문가의 저자가 관심을 보일 경우에만 수정본을 줄 것입니다.

코드가 필요하지 않습니다. 원칙을 공유하십시오.

 
granit77 >> :

코드가 필요하지 않습니다. 원칙을 공유하십시오.

포럼의 활성 회원으로서 저는 코드를 보낼 수 있습니다. 주소만 알려주십시오.
 

형제 여러분, 저는 이미 충격을 받은 밤에 더 현명했습니다. 간단히 말해서 stochastic과 OsMoy로 필터링하면 많은 트릭을 할 수 있습니다. 10에서 28까지 시작하는 1000달러로 60.66% 의 드로다운으로 21000 달러를 얻습니다!!!!

근데 예치금 2% 트레이딩.. wAApche같은데.. 그리고 정제는 어떨지.. 교환가능. 화강암과 코로쉬, 비누를 주세요. 내 bghoper@mail.ru

 
xrust >> :

내 버전

어떻게 사용하시는지 이해가 안되네요...