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

 
global değişkenleri bir seçenek olarak kullan
 

Uzman Danışmanlarımdan birini alarak şu şekilde kâr ettim:

harici çift KarOtoKapat = 100.0; // Kar sabitlemesi için fonların büyümesi

çift Depo;

int init()
{
//----
Depo=AccountEquity();
GlobalVariableSet ("Depo", Depo);
//----
dönüş(0);
}

int başlangıç()
{

Depo=GlobalVariableGet("Depo");

if(AccountEquity()-Depo>KarOtomatikKapat)
{

ClosePositions("0",-1, Mn);//tüm pozisyonları kapat

Depo=AccountEquity();

GlobalVariableSet("Depo",Depo);

}

...

 
Rita >> :

Zorluk burada yatıyor. Önceki adım(lar)da hakkaniyet nasıl belirlenir?

Bir öncekinden uzaklaşmak zorundasın. öz sermaye değerleri. Onu nereden alabilirim - önceki. Iyi?

BİR DEĞİŞKEN GİRİN.

 

Hepinize teşekkür ederim. Evet kesinlikle.

Kâr almayı kapatma ( khorosh -a'dan ) ekledim ve bu seçenek çok iyi çalışıyor. fena değil. Ve ProfitAutoClose parametresini optimize ettikten sonra, düşüş önemli ölçüde azaldı!


Ama yine de, bu "gerçekten" sondaki eşitlik değil.

Ve nasıl uygulanır - buraya sondaki eşitlik eklenir mi? Başka bir değişken tanıtılsın mı?

 
Igor Kim'in yeni Uzman Danışmanında takip eden eşitliği görün.
 

Teşekkürler Granit77 !

Ama sadece başlangıçta bu sürümü denedim. Çalışmayacak çünkü. orada trol teraziden itilir ve terazi ile etkileşime girer. Ve çarçur edilen kârdır.

Ve Uzman Danışmanım çalıştığında öz sermaye her zaman dengenin altında kalıyor ve bu yapı uygun değil.

Bunu biraz daha önce yazdım (sayfa 7'deki son yazı):

" Uzman Danışmanım sürekli olarak negatif kâr yansıtıyorsa, eşitliği nasıl takip edebilirim?
Onlar. - kar yok - ancak cari bir kayıp var (- danışmanın çalışmasının özellikleri budur, her bir pozisyon (çoğunlukla) pozitif bölgede kapalıdır, ancak tüm açık pozisyonlar her zaman toplamda zarardadır)
.

 
Rita >> :

Ve Uzman Danışmanım çalıştığında öz sermaye her zaman dengenin altında kalıyor ve bu yapı uygun değil.

Önce kaybeden işlemleri, sonra karlı olanları kapatın. Bakiye, öz sermayenin altına düşecektir (bu, bakiyenin üzerindeki öz sermayeye eşdeğerdir).

// Bu, verimi hiçbir şekilde etkilemeyecektir.

Ve sonra, anladığım kadarıyla, "eşitlik<dengesi" gerçeği konusunda gergin olma eğilimindesiniz. O kadar sinirleniyorsun ki çok yavaşlıyorsun. ;)

Prensip olarak, kaynağı kişisel olarak atabilirsiniz (eğer herkese açık hale getirmek istemiyorsanız), sizin için düzelteceğim.

 

Rita, koda bir bak (örnek olarak), bir zamanlar kendim yapmıştım, kullanmıyorum ama işe yaradı, şimdi hatırladığım gibi :)

bakiyelere bağlantı yok, bakiyeden kar ve diğer gereksiz

(kullanmadan önce iyice kontrol edin, kendinize göre ve ihtiyaçlarınıza göre yeniden yapın)

 if ( ! GlobalVariableCheck ( "İşlemleri Durdur" ) )
{
if ( ! GlobalVariableCheck ( "TrStopEquity" ) )
{
int sl = SL_Equity ; int tp = TP_Equity ;

if ( ( sl ! = 0 & & AccountEquity ( ) < = sl ) | | ( tp ! = 0 & & AccountEquity ( ) > = tp ) )
{
GlobalVariableSet ( "İşlemleri Durdur" , 1 ) ;
uyku ( 500 ) ;
KapatKonumlar ( ) ;
if ( Yorumu Göster )
{
comm = "Ticaret sona erdi. Tüm işlemler kapandı. \n " ;
comm = comm + "EA'lar şu saatte durdu: " + TimeToStr ( TimeCurrent ( ) , TIME_DATE | TIME_SECONDS ) ;
Yorum ( tercih , iletişim ) ;
}
}
}
}

if ( ! GlobalVariableCheck ( "İşlemleri Durdur" ) )
{
bool tr_stop = TrStop_Equity ; int tr_step = TrStep_Equity ; int tr_dist = TrDist_Equity ; int tr_lvl = TrStartLvl_Equity ;

if ( ( tr_stop ) | | ( tr_lvl ! = 0 & & AccountEquity ( ) > = tr_lvl ) | | ( GlobalVariableCheck ( "TrStopEquity" ) ) )
{
if ( ! GlobalVariableCheck ( "TrStopEquity" ) )
{
GlobalVariableSet ( "TrStopEquity" , 1 ) ;
} Uyku ( 500 ) ;
if ( ! GlobalVariableCheck ( "SL_Equity" ) )
{
GlobalVariableSet ( "SL_Equity" , ( AccountEquity ( ) - tr_dist ) ) ) ;
} Uyku ( 500 ) ;

sl = GlobalVariableGet ( "SL_Equity" ) ;

if ( Hesap Sermayesi ( ) < = sl )
{
GlobalVariableSet ( "İşlemleri Durdur" , 1 ) ;
uyku ( 500 ) ;
GlobalVariableDel ( "TrStopEquity" ) ;
uyku ( 500 ) ;
GlobalVariableDel ( "SL_Equity" ) ;
uyku ( 500 ) ;
KapatKonumlar ( ) ;
if ( Yorumu Göster )
{
comm = "Ticaret sona erdi. Tüm işlemler kapandı. \n " ;
comm = comm + "EA'lar şu saatte durdu: " + TimeToStr ( TimeCurrent ( ) , TIME_DATE | TIME_SECONDS ) ;
Yorum ( tercih , iletişim ) ;
}
}
başka
{
if ( AccountEquity ( ) > ( sl + tr_dist + tr_step ) )
GlobalVariableSet ( "SL_Equity" , ( AccountEquity ( ) - tr_dist ) ) ) ;
uyku ( 500 ) ;
if ( Yorumu Göster )
{
comm = "Sondaki Durdurma çalışıyor: \n " ;
comm = comm + "Zararı Durdurma Düzeyi: " + DoubleToStr ( NormalizeDouble ( sl , 2 ) , 2 ) + " \n " ;
iletişim = iletişim + TimeToStr ( TimeCurrent ( ) , TIME_DATE | TIME_SECONDS ) ;
Yorum ( tercih , iletişim ) ;
}
}
}
}
Not: kullanılan işlevler - Kim, henüz sahip değilseniz, bunları forumda bulacaksınız.
 

Herhangi biri varsa, basit bir öz sermaye izi atın.Tek bir koşul var - tüm pozisyonları kapatmak ve tüm emirleri silmek, eğer fonlar = XXXX olursa, yani. örneğin, pozisyon açmadan önce bakiye 10000 idi, izdeki öz sermayeyi 10500'e ayarlayın ve fonlar = 10500 olur olmaz tüm emirleri kapatın ve pozisyonları açın. :)

Kim'inkine baktım .. bir şeyler doğru değil gibi görünüyor .. bu konunun yukarısında, her şey bir şekilde karmaşık))) Şimdiden teşekkürler :)

 

Ah, bu kadar, sanırım biraz daha yüksek buldum.. stCloseOrders ihtiyacınız olan şey gibi görünüyor :)

Ama birinin benzer bir şeyi varsa, atın .. gereksiz bir faydası yok :)

Neden: