Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
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 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.
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.
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)
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.
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 !"); } } } }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)
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)
İşlevi kopyalamaya çalıştığımda, nasıl ince ayar yapmaya çalışırsam çalışayım sayısız hata alıyorum.
Bu kod:
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
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)
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.
Ü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.