Takip eden fonların işlevi (öz sermaye) - belki biri hazır olanla tanışmıştır? - sayfa 4

 

benim versiyonum :

 //+------------------------------------------------------------------+
//|Трал по эквити                                                    |
//+------------------------------------------------------------------+
bool EcvitiTral3 ( double EqvTralStep ) {
if ( OrdersTotal ( ) < 1 ) { gEqviti = AccountBalance ( ) ; return ( false ) ; }
if ( ! GlobalVariableCheck ( "step" ) ) { EqvTralStep = EqvTralStep ; }
   else { EqvTralStep = GlobalVariableGet ( "step" ) ; }
EqvTralStep = EqvTralStep * ( GlobalVariableGet ( "multi" ) - GlobalVariableGet ( "disable" ) ) ;
   if ( WithoutLoss ) {
     if ( AccountEquity ( ) > = AccountBalance ( ) ) {
       if ( AccountEquity ( ) - AccountBalance ( ) > ( ( AccountBalance ( ) / 100 ) * ( EqvTralStep * 2 ) ) ) { EqvTralStep = EqvTralStep * 2 ; }
       if ( AccountEquity ( ) > ( gEqviti + ( gEqviti / 100 * EqvTralStep ) ) ) {
        gEqviti = gEqviti + ( gEqviti / 200 * EqvTralStep ) ;
        eqvtrade = true ;
         if ( ! GlobalVariableCheck ( "stop" ) ) { GlobalVariableSet ( "stop" , 0 ) ; }
       }
       if ( AccountEquity ( ) < = gEqviti ) { CloseAll ( ) ; Print ( "CloseAll" ) ; GlobalVariableDel ( "stop" ) ; return ( false ) ; }
       else { Comment ( AccountFreeMargin ( ) + AccountMargin ( ) , " \n " ,
                 "EQUITY TRALING MODE \n " ,
                 "EQUITY TRALING STEP   =" , EqvTralStep , " %" ,
                 " \n ACCOUNT BALANS         = " , AccountBalance ( ) ,
                 " \n CLOSE LEVEL                  = " , gEqviti ,
                 " \n ACCOUNT EQUITY        = " , AccountEquity ( ) ,
                 " \n NEXT STEP                     = " , gEqviti + ( gEqviti / 100 * EqvTralStep ) ) ;
                 return ( true ) ;
       }
     } else { GlobalVariableDel ( "stop" ) ; } 
   } else {
     if ( AccountEquity ( ) > AccountBalance ( ) ) {
       if ( AccountEquity ( ) - AccountBalance ( ) > ( ( AccountBalance ( ) / 100 ) * ( EqvTralStep * 2 ) ) ) { EqvTralStep = EqvTralStep * 2 ; }       
       if ( AccountEquity ( ) > ( gEqviti + ( gEqviti / 100 * EqvTralStep ) ) ) {
        gEqviti = gEqviti + ( gEqviti / 200 * EqvTralStep ) ;
        eqvtrade = true ;
         if ( ! GlobalVariableCheck ( "stop" ) ) { GlobalVariableSet ( "stop" , 0 ) ; }
       }
       if ( AccountEquity ( ) < = gEqviti ) { CloseAll ( ) ; Print ( "CloseAll" ) ; GlobalVariableDel ( "stop" ) ; return ( false ) ; }
       else { Comment ( AccountFreeMargin ( ) + AccountMargin ( ) , " \n " ,
                 "EQUITY TRALING MODE \n " ,
                 "EQUITY TRALING STEP   =" , EqvTralStep , " %" ,
                 " \n ACCOUNT BALANS         = " , AccountBalance ( ) ,
                 " \n CLOSE LEVEL                  = " , gEqviti ,
                 " \n ACCOUNT EQUITY        = " , AccountEquity ( ) ,
                 " \n NEXT STEP                     = " , gEqviti + ( gEqviti / 100 * EqvTralStep ) ) ;
                 return ( true ) ;
       }
     } else { GlobalVariableDel ( "stop" ) ; }   
   }
return ( false ) ;
}
çağrı başlangıçta yapılır ve iz süresince EA'nın diğer bloklarının çalışmasını engeller, takip eden adım değişkendir - ikinci dereceden, bu da keskin özkaynak sıçramalarını iyi bir şekilde yapmanıza ve maksimum karı yakalamanıza olanak tanır. BU modu, kârsız siparişleri tomurcukta kesmenize olanak tanır.
 
xrust >>:

benim versiyonum :

çağrı başlangıçta yapılır ve iz süresince EA'nın diğer bloklarının çalışmasını engeller, takip eden adım değişkendir - ikinci dereceden, bu da keskin özkaynak sıçramalarını iyi bir şekilde yapmanıza ve maksimum karı yakalamanıza olanak tanır. BU modu, kârsız siparişleri tomurcukta kesmenize olanak tanır.

İyi günler xrust! Lütfen. Bu bloğun nasıl çalıştığını daha ayrıntılı olarak açıklayın. Bir türlü çalıştıramıyorum.

İşte belirsizlikler.

1. İşlev CloseAll(), görünür f-I, bir kedi. tüm emirleri siler ve/veya pozisyonları kapatır .

Bu işlevin bir analogu var ve burada sorun yok ..

2. belirlediğim özelliklerde

extern bool Kayıpsız = doğru;

- bu parametre nedir?

3. Bir başkası sordu -

extern double gEqviti=200;// - bu, takip işleminin başladığı öz sermaye başarısının boyutunu gösterir ?

4. Daha fazla sorulan-

bool eşit ticaret;

Başka ne sorulması gerekiyor? EqvTralStep parametresi nasıl ayarlanır; ?

Ve lütfen (zor değilse) işlevin işleyişini genel terimlerle 2-3 kelimeyle tanımlayın.

 
İşlev, Expert Advisor'ın en başında int Start()'tan hemen sonra çağrılır, çağrı şu şekilde yapılır:
 //удаляем запрет на торговлю после удаления всех ордеров 
   if ( OrdersTotal ( ) < 1 ) {
     if ( GlobalVariableCheck ( "stop" ) ) { GlobalVariableDel ( "stop" ) ; }   
    gEqviti = AccountBalance ( ) ; 
   } 
//тралим эквити
   if ( EcvitiTral3 ( EqwTralStep ) ) { return ( 0 ) ; }
   if ( GlobalVariableCheck ( "stop" ) ) { return ( 0 ) ; }

öz sermaye dengenin üzerine çıkarsa, uzmanın tüm çelik fonksiyonlarını ve izlerini engeller.

şimdi değişkenler için: global değişkenlerde static double gEqviti;

harici değişkenlerde extern double EqwTralStep=0.03; özkaynak yüzdesi olarak takip eden adım extern bool Olmadan Kayıp=yanlış; başabaş yöntemini kullanma izni

fonksiyon işlemi: öz sermaye bakiyeyi aştığında, kapatmak gerektiğinde bakiye seviyesini sıfır olarak hatırlar - bu başabaş ile çalışmaktır, öz sermaye yüzde olarak EqwTralStep boyutu tarafından daha fazla aşılırsa, kapanış seviyesini daha yükseğe taşır , aşırı hız yüksekse, fonksiyon adımı ikinci dereceden artırır.

 
Sayesinde! Yapmaya çalışacağım.
 

Hiç de değil, eğer zorluklar varsa - endişe edin ...

 

Yapılmış. Başlatıldı. Şimdiye kadar her şey iyi çalışıyor. İkinci hafta online izliyorum

Ancak. Nadiren de olsa aksaklıklar olabiliyor.

Genellikle piyasada aynı anda 3-10 pozisyonum var.

Ancak - Piyasada sadece bir pozisyon olduğunda, aniden pozisyonu görünür bir sebep olmadan kapatarak bir kâr = 1-2 pip ile olur!

nedenini anlamıyorum. Bu, Uzman Danışmanımın ana kodunda sağlanmamıştır.

 

Kontrol etmek oldukça basittir, böyle bir kapanış, fiyattaki keskin bir artıştan ve kapanış seviyesinin yeni bir seviyeye geçişinden ve bir pozisyonun kapatılması sonucunda olabilir.

Şöyle yapın:

организуйте в функции стическую переменную static double prewlewel ;

потом перед , или за комментами 

   if ( prewlewel ! = gEqviti ) {
    prewlewel = gEqviti ;
     Print ( prewlewel ) ;
   } 

А здесь добавьте обнуление переменной 
if ( OrdersTotal ( ) < 1 ) { gEqviti = AccountBalance ( ) ; prewlewel = 0 ; return ( false ) ; }
 

xrust - Sana bir önerim var - bağımsız bir Uzman Danışman şeklinde hisse senedi trol versiyonunuzun kodunu verebilir misiniz?

Bu, el tüccarları için çok yararlı bir araç olacaktır.

Çok uzun zamandır böyle bir şey arıyordum ama uygun bir şey görmedim ve kendim kodda güçlü değilim (daha doğrusu zayıfım).

 
ToKa_TuXa писал(а) >>

xrust - Sana bir önerim var - bağımsız bir Uzman Danışman şeklinde hisse senedi trol versiyonunuzun kodunu verebilir misiniz?

Bu, el tüccarları için çok yararlı bir araç olacaktır.

Fena fikir değil! Desteklerim...

Gerçekten. Bu tasarım farkedilmeden gitmeyecek.

 
Bunu deneyin Yönetmesi kolay. kendim kullanıyorum. Sadece istenen karı ve buna ulaştıktan sonra izin verilen düşüş yüzdesini belirtmeniz gerekir.