Evrensel MA Çapraz EA - sayfa 106

 
BlackCoq:
Sorun şu ki, martingale sistemi için mükemmel çalışan çok benzer bir kod kullanıyorum: Martingale için çalıştığına göre, şimdi de çalışması gerekmez mi?

Bunun gibi bir şey kullanmayı deneyin:

double GetLastPL()

{

double TempLastOrderProfit = 0;

datetime CloseTime = 0;

for(int i=OrdersHistoryTotal()-1;i>=0;i--)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))

if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime)

{

CloseTime = OrderCloseTime();

TempLastOrderProfit = OrderProfit() + OrderSwap()+ OrderCommission();

}

}

return(TempLastOrderProfit);

}

Size son siparişin kârının (veya zararının) tam miktarını iade edecektir.

 
mladen:
Bunun gibi bir şey kullanmayı deneyin: Size son siparişin tam kârını (veya zararını) iade edecektir.

Yardımın için teşekkürler, Mladen. Herhangi bir hata olmadan derleyene kadar kodda biraz değişiklik yaptım, ancak EA bir kayıptan sonra hala duruyor ve tersine döndü. Şu anda kullandığım tam kod bu:

{

çift TempLastOrderProfit = 0;

tarihsaat KapatSaat = 0;

for(int i=OrdersHistoryTotal()-1;i>=0;i--)

{

if (Sipariş Seçimi(i,SELECT_BY_POS,MODE_HISTORY))

if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime)

{

CloseTime = OrderCloseTime();

}

}

if(StopAndReverse==true && subTotalTrade()>0 && OrderProfit()>0)

{

if((LastTrade=="AL" && SellCondition==true) || (LastTrade=="SAT" && BuyCondition==true))

{

subCloseOrder();

if(subTotalTrade()>0) subCloseOrder();

if(subTotalTrade()>0) subCloseOrder();

if(IsTesting() && PrintControl==true) Print("DUR VE GERİ DÖN !");

}

}

}

double GetLastPL() Bana şu hatayı veriyor: '(' - işlev tanımı beklenmeyen.

 
BlackCoq:
Yardımın için teşekkürler, Mladen. Herhangi bir hata olmadan derleyene kadar kodda biraz değişiklik yaptım, ancak EA bir kayıptan sonra hala duruyor ve tersine döndü. Şu anda kullandığım kod tam olarak bu: double GetLastPL() Bana şu hatayı veriyor: '(' - işlev tanımı beklenmiyor.

siyah Coq

Döngü içindeki tüm mantıksal karşılaştırmaları yapmanız gerekir, çünkü OrderProfit() gibi işlevler kapalı siparişler listesinden halihazırda seçili olan siparişin karını döndürür. Ana döngü içinde değilse (for(int i=OrdersHistoryTotal()-1;i>=0;i--)) o zaman sadece son seçilen sipariş test edilir ve bu onun son sipariş olduğu anlamına gelmez. (meta alıntılar, belgelerinde, kapalı (veya hala açık) siparişler listesindeki siparişlerin belirli bir sırada olması gerekmediğini açıkça belirtir - siparişi kontrol etmek kodlayıcıların sorumluluğundadır)

 
mladen:
BlackCoq Döngü içindeki tüm mantıksal karşılaştırmaları yapmalısınız, çünkü OrderProfit() gibi işlevler kapalı siparişler listesinden halihazırda seçili olan siparişin karını döndürüyor. Ana döngü içinde değilse (for(int i=OrdersHistoryTotal()-1;i>=0;i--)) o zaman sadece son seçilen sipariş test edilir ve bu onun son sipariş olduğu anlamına gelmez. (meta alıntılar, belgelerinde, kapalı (veya hala açık) siparişler listesindeki siparişlerin belirli bir sırada olması gerekmediğini açıkça belirtir - siparişi kontrol etmek kodlayıcıların sorumluluğundadır)

Görünüşe göre kolay olan bu görevde saatlerce başarısız olduktan sonra, devam etmeden önce çok daha fazla programlama çalışmaya karar verdim. Yine de yardımın için teşekkürler!

Bunu denediğimde EA hiç pozisyon açmıyordu:

{ double TempLastOrderProfit = 0; datetime CloseTime = 0; for(int i=OrdersHistoryTotal()-1;i>=0;i--) { if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime) { CloseTime = OrderCloseTime(); } } { if(StopAndReverse==true && subTotalTrade()>0 && OrderProfit()>0) { if((LastTrade=="BUY" && SellCondition==true) || (LastTrade=="SELL" && BuyCondition==true)) { subCloseOrder(); if(subTotalTrade()>0) subCloseOrder(); if(subTotalTrade()>0) subCloseOrder();

if(IsTesting() && PrintControl==true) Print("STOP AND REVERSE !"); } } } }[/PHP]

And with this, it would "stop and reverse" even if last trade was a loss:

[PHP] { double TempLastOrderProfit = 0; datetime CloseTime = 0; for(int i=OrdersHistoryTotal()-1;i>=0;i--) { if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime) { CloseTime = OrderCloseTime(); TempLastOrderProfit = OrderProfit() + OrderSwap()+ OrderCommission(); } } return(TempLastOrderProfit); { if(StopAndReverse==true && subTotalTrade()>0 && TempLastOrderProfit>0) { if((LastTrade=="BUY" && SellCondition==true) || (LastTrade=="SELL" && BuyCondition==true)) { subCloseOrder(); if(subTotalTrade()>0) subCloseOrder(); if(subTotalTrade()>0) subCloseOrder();

if(IsTesting() && PrintControl==true) Print("STOP AND REVERSE !"); } } } }

Tekrar teşekkür ederim.

 
BlackCoq:
Görünüşe göre kolay olan bu görevde saatlerce başarısız olduktan sonra, devam etmeden önce çok daha fazla programlama çalışmaya karar verdim. Yine de yardımın için teşekkürler!

Bunu denediğimde EA hiç pozisyon açmıyordu:

{ double TempLastOrderProfit = 0; datetime CloseTime = 0; for(int i=OrdersHistoryTotal()-1;i>=0;i--) { if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime) { CloseTime = OrderCloseTime(); } } { if(StopAndReverse==true && subTotalTrade()>0 && OrderProfit()>0) { if((LastTrade=="BUY" && SellCondition==true) || (LastTrade=="SELL" && BuyCondition==true)) { subCloseOrder(); if(subTotalTrade()>0) subCloseOrder(); if(subTotalTrade()>0) subCloseOrder();

if(IsTesting() && PrintControl==true) Print("STOP AND REVERSE !"); } } } }[/PHP]

And with this, it would "stop and reverse" even if last trade was a loss:

[PHP] { double TempLastOrderProfit = 0; datetime CloseTime = 0; for(int i=OrdersHistoryTotal()-1;i>=0;i--) { if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime) { CloseTime = OrderCloseTime(); TempLastOrderProfit = OrderProfit() + OrderSwap()+ OrderCommission(); } } return(TempLastOrderProfit); { if(StopAndReverse==true && subTotalTrade()>0 && TempLastOrderProfit>0) { if((LastTrade=="BUY" && SellCondition==true) || (LastTrade=="SELL" && BuyCondition==true)) { subCloseOrder(); if(subTotalTrade()>0) subCloseOrder(); if(subTotalTrade()>0) subCloseOrder();

if(IsTesting() && PrintControl==true) Print("STOP AND REVERSE !"); } } } }
Tekrar teşekkür ederim.

siyah Coq

Gönderdiğim işlevi olduğu gibi kullanırsanız, size son kapatılan siparişin tam kârını verecektir (bunda hiçbir şeyi değiştirmenize gerek yoktur)

 
mladen:
BlackCoq Gönderdiğim işlevi olduğu gibi kullanırsanız, size son kapatılan siparişin tam kârını verecektir (bunda hiçbir şeyi değiştirmenize gerek yoktur)

İşlevi kopyalamaya çalıştığımda, nasıl ince ayar yapmaya çalışırsam çalışayım sayısız hata alıyorum.

Bu kod:

{

çift GetLastPL()

{

çift TempLastOrderProfit = 0;

tarihsaat KapatSaat = 0;

for(int i=OrdersHistoryTotal()-1;i>=0;i--)

{

if (Sipariş Seçimi(i,SELECT_BY_POS,MODE_HISTORY))

if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime)

{

CloseTime = OrderCloseTime();

TempLastOrderProfit = OrderProfit() + OrderSwap()+ OrderCommission();

}

}

dönüş(TempLastOrderProfit);

{

if(StopAndReverse==true && subTotalTrade()>0 && TempLastOrderProfit>0)

{

if((LastTrade=="AL" && SellCondition==true) || (LastTrade=="SAT" && BuyCondition==true))

{

subCloseOrder();

if(subTotalTrade()>0) subCloseOrder();

if(subTotalTrade()>0) subCloseOrder();

if(IsTesting() && PrintControl==true) Print("DUR VE GERİ DÖN !");

}

}

}

}

Bana hataları veriyor:

'universalMAcrossECNmartingaleSAR.mq4' derleniyor...

'(' - beklenmeyen işlev tanımı (538, 20)

'TempLastOrderProfit' - değişken tanımlanmadı (548, 15)

'TempLastOrderProfit' - değişken tanımlanmadı (551, 15)

'TempLastOrderProfit' - değişken tanımlanmadı (553, 52)

 
BlackCoq:
İşlevi kopyalamaya çalıştığımda, nasıl ince ayar yapmaya çalışırsam çalışayım sayısız hata alıyorum.

Bu kod:

{ double GetLastPL() { double TempLastOrderProfit = 0; datetime CloseTime = 0; for(int i=OrdersHistoryTotal()-1;i>=0;i--) { if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime) { CloseTime = OrderCloseTime(); TempLastOrderProfit = OrderProfit() + OrderSwap()+ OrderCommission(); } } return(TempLastOrderProfit); { if(StopAndReverse==true && subTotalTrade()>0 && TempLastOrderProfit>0) { if((LastTrade=="BUY" && SellCondition==true) || (LastTrade=="SELL" && BuyCondition==true)) { subCloseOrder(); if(subTotalTrade()>0) subCloseOrder(); if(subTotalTrade()>0) subCloseOrder();

if(IsTesting() && PrintControl==true) Print("STOP AND REVERSE !"); } } } }[/PHP]

Gives me the errors:

[PHP]

Compiling 'universalMAcrossECNmartingaleSAR.mq4'... '(' - function definition unexpected (538, 20)'TempLastOrderProfit' - variable not defined (548, 15)'TempLastOrderProfit' - variable not defined (551, 15)'TempLastOrderProfit' - variable not defined (553, 52)

siyah Coq

Bu işlev , başka herhangi bir işlevin dışına yapıştırılmalıdır. İşte nasıl çalıştığını ve nasıl kullanılması gerektiğini gösteren çok basit bir ea

Dosyalar:
 
mladen:
BlackCoq Bu işlev, başka herhangi bir işlevin dışına yapıştırılmalıdır. İşte nasıl çalıştığını ve nasıl kullanılması gerektiğini gösteren çok basit bir ea

Burada bir şeyi kaçırdığımdan eminim, ancak işlevi EA'daki herhangi bir işlevin dışına kopyalamaya çalışsam bile yine de aşağıdaki hataları alıyorum:

'(' - beklenmeyen işlev tanımı ( çift GetLastPL () 'den sonra)

'TempLastOrderProfit' - değişken tanımlanmadı (554, 15)

'TempLastOrderProfit' - değişken tanımlanmadı (557, 15)

 
BlackCoq:
Burada bir şeyi kaçırdığımdan eminim, ancak işlevi EA'daki herhangi bir işlevin dışına kopyalamaya çalışsam bile yine de aşağıdaki hataları alıyorum:

'(' - beklenmeyen işlev tanımı ( çift GetLastPL () 'den sonra)

'TempLastOrderProfit' - değişken tanımlanmadı (554, 15)

'TempLastOrderProfit' - değişken tanımlanmadı (557, 15)

Üzgünüm, ama kodunuz olmadan ne yaptığınız hakkında hiçbir fikrim yok

Bu EA testinden de görebileceğiniz gibi, hiç problemsiz çalışıyor.

 
mladen:
Üzgünüm, ancak kodunuz olmadan ne yaptığınız hakkında hiçbir fikrim yok.

Ayrıca eklediğiniz EA'yı derlemeye çalıştığımda birkaç hata alıyorum. MT4'ün farklı sürümlerini mi kullanıyoruz?

EA'yı ekliyorum, önce "dur ve geri git" işlevini eklemeye çalışıyorum.

Neden: