![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
matrixebiz bu iki satırı yeniden yazmaktan kastınız nedir; ve nasıl yaparım, denediğim AC göstergesinin koduna giremiyorum,
Accelerator.mq4'ü MetaEditor'da açarsınız (Göstergeler klasörünüzdedir) ve bu iki satırın önüne // koyun, ardından AcceleratorMod.mq4'ü yeni bir adla kaydedin ve ardından derlemeye tıklayın.
Hayır bu doğru değil.
for döngüsünde 6'dan başlıyorsunuz ve 1'e düşüyorsunuz. Bu, son döngüde for döngüsünün yürüttüğü "if (i == 1) qqecross = True;" işlemini gerçekleştireceği anlamına gelir. Kontrol. Sonuç, qqecross meydana gelirse çıktının doğru olacağıdır.
Bunun sunabileceği tek sorun, önceki bir döngüde qqecross'un true olarak ayarlanmış olmasıdır. Bunun üstesinden gelmek için qqecross = false; for döngüsünden önce. Bu şekilde, qqeacross = true ise, bunun henüz tamamlanmış olan döngü tarafından ayarlandığından emin olabilirsiniz.
Şerefe,
hiachieverYani "if (i == 1) qqecross = True;" dese bile ve sonra i=4 (geri sayım nedeniyle), qqecross yine de = True olacak mı?
Teşekkürler hiachiever!
Bunu yapmanın yolu, global kapsamda bir vriable oluşturmaktır (yani init'ten önce)
Örneğin
int BarCount;
int başlangıç ()
Ardından zararı durdurma kodunuzda aşağıdakileri kullanın:
if (BarCount<Bars)
{
SL=iLow(Symbol(),Period(),iLowest(Symbol(),Period(),MODE_LOW,StopLossBars,0));
StopLossBars++;
BarCount=Barlar;
}
Bu, StopLossBar'ları her yeni çubukta 1 artıracaktır.
Kodunuza eklenen diğer tek şey, yeni bir ticaret açıldığında 'StopLossBars'ı orijinal varsayılan değerine sıfırlamak olacaktır.
Şerefe,
HiachieverTeşekkür ederim selam, yardım etmen büyük incelik , ancak küçük bir iyilik daha rica ediyorum.
Kod parçanızın nasıl çalıştığını anladığımı düşünüyorum ve onu EA'ma kopyalayabileceğimden eminim.
. Yine de StopLossBar'ları varsayılanlarına nasıl sıfırlayacağımdan emin değilim. Bu, EA'nın sonunda uzun veya kısa gitmek için kullanılan koddur:
{
int ticket = OrderSend(Symbol(),OP_BUY,GetLots(100),Ask,maxSlippage,0,0,"Long",MagicNumber,0,Green);
if (screenshots) WindowScreenShot(Symbol()+Period()+"_"+Hour()+Minute()+"_.gif",1024,768);
if (showAlerts) Alert(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Long");
Print(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Long");
}
void goShort()
{
int ticket = OrderSend(Symbol(),OP_SELL,GetLots(100),Bid,maxSlippage,0,0,"Short",MagicNumber,0,Red);
if (screenshots) WindowScreenShot(Symbol()+Period()+"_"+Hour()+Minute()+"_.gif",1024,768);
if (showAlerts) Alert(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Short");
Print(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Short");
}
double stopLoss(int ordertype)StopLossBar'ları sıfırlamak için bazı kodlara yardımcı olabilir misiniz lütfen?
Tekrar teşekkürler.
matrixebiz bunu yaptım şimdi ea'ma aşağıdaki satırları eklediğimde ea'mı derleyemiyorum
double ac1 = iCustom(NULL, 0, "AcceleratorMod", 1, 1);
double ac2 = iCustom(NULL, 0, "AcceleratorMod", 2, 1);
double ac11 = iCustom(NULL, 0, "AcceleratorMod", 1, 2);
double ac22 = iCustom(NULL, 0, "AcceleratorMod", 2, 2);
bool acbuy = ac2==0 && ac11==0; // Kireç için kırmızı değişiklikler
bool acsell = ac1==0 && ac22==0; // Kireç Kırmızıya dönüşür
12 hata alıyorum: AC değişkeni tanımlanmadı:
ve yardımın için teşekkür etmek istiyorum
StopLossBars'ın kullanıcı girişleri aracılığıyla ayarlanan global bir değişken olduğunu varsayıyorum, değil mi?
Valla benim yapacağım şey şöyle bir şey.
Kullanıcı girdi değişkeninin gStopLossBars gibi bir şey olmasını sağlayın, ardından init işlevinizde onu yerel değişkeninize atayın...
StopLossBars = gStopLossBars;
Ardından StopLossBar'ları sıfırlamak için satın alma ve satma işlevlerinizde aynı atamayı kullanın.
Mantıklı olmak?
Umarım yardımcı olur.
Lüks
Ac+ao+psar
Herkese selam,
AC+AO+PSAR'ı uyarı/e-posta ile yeni bir gösterge haline getirmek için herkes birleştirebilir mi? Lütfen PM atın. Teşekkür ederim
StopLossBars'ın kullanıcı girişleri aracılığıyla ayarlanan global bir değişken olduğunu varsayıyorum, değil mi?
Valla benim yapacağım şey şöyle bir şey.
Kullanıcı girdi değişkeninin gStopLossBars gibi bir şey olmasını sağlayın, ardından init işlevinizde onu yerel değişkeninize atayın...
StopLossBars = gStopLossBars;
Ardından StopLossBar'ları sıfırlamak için satın alma ve satma işlevlerinizde aynı atamayı kullanın.
Mantıklı olmak?
Umarım yardımcı olur.
LüksBu çok mantıklı. Çok teşekkür ederim.
Yeni mumun başladığını nasıl anlarım?
lütfen biri bana biraz tavsiye versin, yeni çubuk başladığında (günlük TF) bekleyen bir sipariş veren bir EA'yı nasıl oluşturabilirim?
Teşekkürler
lütfen biri bana biraz tavsiye versin, yeni çubuk başladığında (günlük TF) bekleyen bir sipariş veren bir EA'yı nasıl oluşturabilirim? Teşekkürler
Bunu döngüden ve döngüden kimse durdurabilir mi?
void BEM ()
{
int pip;
for (int k=0; k<Sipariş Toplamı ();k++)
{
OrderSelect(k, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY && OrderSymbol()== Symbol () && OrderMagicNumber()== Magic)
{
pip = (Bid - OrderOpenPrice())/Point;
if ((pip >= BE) && (OrderStopLoss() < OrderOpenPrice()))
{
OrderModify (OrderTicket (), OrderOpenPrice (),OrderOpenPrice ()+ 12*Puan, OrderTakeProfit (), 0, LightBlue);
}
}
if(OrderType()==OP_SELL && OrderSymbol()== Symbol () && OrderMagicNumber()== Magic)
{
pip = (OrderOpenPrice() - Sor)/Puan;
if ((pip >= BE) && (OrderStopLoss() > OrderOpenPrice()))
{
OrderModify (OrderTicket (), OrderOpenPrice (),OrderOpenPrice ()- 12*Puan, OrderTakeProfit (), 0, Pembe);
}
}
}
}