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
Merhaba arkadaşlar, son üç gündür bu uzman danışmanın mt4'te uzun vadeli işlemler gerçekleştirmesini sağlamak için uğraşıyorum ve başarılı olamadım. sinyal_buy orada olsa bile sadece kısa esnaf yürütür. lütfen herhangi biri bu koda bir göz atabilir ve benim için düzeltebilir veya bana ne yapacağımı söyleyebilir. Programlamada yeniyim ve onu çevrimiçi bir strateji oluşturucudan oluşturdum. şimdiden teşekkürler! kod ektedir.
I am not sure about the -3 shift parameter : it shift the curve to the left, so the current bar is undefinited. Try to replace all -3 by 0 to see if the buy orders are triggered.
I would replace
double Var2 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);
double Var3 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current + 0);
double Var4 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_LOWER, Current + 0);
double Buy1_1 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);
double Buy1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current + 0);
double Sell1_1 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);
double Sell1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_LOWER, Current + 0);
double CloseBuy1_1 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);
double CloseBuy1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current + 0);
double CloseSell1_1 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);
double CloseSell1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current + 0);by
[PHP]double Buy1_1 = iMA(NULL, 0, 3, 0, MODE_SMA, PRICE_CLOSE, Current);
double Buy1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current);
double Sell1_1 = Buy1_1;
double Sell1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_LOWER, Current);
double CloseBuy1_1 = Buy1_1;
double CloseBuy1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current);
double CloseSell1_1 = Buy1_1;
double CloseSell1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current);Rem :
- Var1,2,3,4, kullanılmaz.
- Hem CloseBuy1_2 hem de CloseSell1_2 aynıdır: biri muhtemelen yanlıştır (MODE_LOWER)
Kodla ilgili yardıma ihtiyacınız var
Michel, yardımın için çok teşekkürler, bu onu mükemmel bir şekilde düzeltti! Sizler en iyisisiniz, sonunda biraz dinlenebilirim. Testimin nasıl sonuçlandığını size bildireceğim.
oh bu arada, -3 asla bu uzman danışmanda çalışamayacağını mı söylüyor? tekrar teşekkürler.
... oh bu arada, -3 asla bu uzman danışmanda çalışamayacağını mı söylüyor? tekrar teşekkürler.
Gerçeği söylemek gerekirse, bu kaydırmanın kullanımını gerçekten hiç anlamadım: mevcut çubuktan 3 çubuk önce bir göstergenin değerini bilmek istiyorsanız, kaydırma olarak 3'ü kullanın, ancak sonuncusu; ilki sadece eğrinin çizimini kaydırır ve negatif bir değer kullanırsanız, geçmiş geleceği bilmek gibidir...
Her neyse, birisi bana bunun kullanımını açıklarsa sevinirim!
Ancak sorunuzu yanıtlamak için, izlemek istediğiniz stratejiyi tam olarak öğrenmeye çalışın, bu -3 nereden geliyor?
merhaba
bu uzmanda tüm sl'leri tp ile aynı son siparişler sl'ye değiştirmek istiyorum ama yapamadım
Lütfen bana yardım et
Ben ne yaptım?
MT4'te kodlama konusunda yardıma ihtiyacım var
Aşağıda bazı kodlar var:
StopLoss=EMAtrend-iClose(NULL,0,1);
TakeProfit=Zararı Durdur
If(EMAshort>EMAlong && EMAshort_prev<EMAlong_prev)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Ask+StopLoss*Puan,Teklif+AlKar*Puan," Yakın fiyattan al ",10000,0,Yeşil);
}
Eğer(EMAshortEMAlong_prev)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,0,StopLoss,Bid+TakeProfit*Point,"Kapanış fiyattan sat",11000,0,Kırmızı);
}
Fikir şunlardı:
1. Kriterler karşılandığında kapanış fiyatından açık emir;
2. EMA trendini stoploss seviyesi yapmak istiyorum;
3. EMAtrend ile Kapanış fiyat çubuğu arasındaki mesafe, açılan fiyattan kâr alma mesafesi olacaktır.
Yukarıdaki kodu deniyorum ama hiçbir şey olmuyor ve 130 hatası var.
Lütfen bana yardım et.
Kodla ilgili yardıma ihtiyacınız var
herkese selam
Derlemek için bir ea almaya çalışıyorum, ancak aşağıdaki hatayla çıkıyor:
Now the part of the ea causing this is right at the start of the code :
If I block this out it comes up with errors for the following bit of code :
[CODE] if(TotalTradesThisSymbol(TradeSymbol)==0) { int BS=0,SS=0,BL=0,SL=0; }
if(TotalTradesThisSymbol(TradeSymbol)>0) {
for(cnt=0;cnt<total;cnt++) {
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()== Symbol) {
if(OrderMagicNumber()==11) { BS=OrderTicket(); }
if(OrderMagicNumber()==22) { SS=OrderTicket(); }
if(OrderMagicNumber()==33) { BL=OrderTicket(); }
if(OrderMagicNumber()==44) { SL=OrderTicket(); }
}//end if(OrderSymbol
}//end for
}//end if */Bilmek istediğim şey, bunu düzeltmenin kolay bir yolu olup olmadığı.
Kodlamada iyi değilim, sadece kopyalayıp yapıştırıyorum.
Şimdiden teşekkürler
Basza
herkese selam
Derlemek için bir ea almaya çalışıyorum, ancak aşağıdaki hatayla çıkıyor:
Now the part of the ea causing this is right at the start of the code :
If I block this out it comes up with errors for the following bit of code :
[CODE] if(TotalTradesThisSymbol(TradeSymbol)==0) { int BS=0,SS=0,BL=0,SL=0; }
if(TotalTradesThisSymbol(TradeSymbol)>0) {
for(cnt=0;cnt<total;cnt++) {
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()== Symbol) {
if(OrderMagicNumber()==11) { BS=OrderTicket(); }
if(OrderMagicNumber()==22) { SS=OrderTicket(); }
if(OrderMagicNumber()==33) { BL=OrderTicket(); }
if(OrderMagicNumber()==44) { SL=OrderTicket(); }
}//end if(OrderSymbol
}//end for
}//end if */Bilmek istediğim şey, bunu düzeltmenin kolay bir yolu olup olmadığı.
Kodlamada iyi değilim, sadece kopyalayıp yapıştırıyorum.
Şimdiden teşekkürler
BaszaTradeSymbol'u global kepçede string olarak tanımlayabilirsiniz, ancak burada Symbol() fonksiyonunu değerlendiremezsiniz. Bu nedenle, tüm "TradeSymbol" öğelerini "Symbol()" ile değiştirin veya init() veya start() işlevindeki değeri şu şekilde atayın:
programlamada yardım
Merhaba, bir adet programlamaya çalışıyordum ve kursunuzu takip ettim (çok ilginç!)
Java ve bazı c++ ile programlamayı oldukça iyi biliyorum.
Arkasındaki fikir, beyin eğilimi göstergeleriyle bir adet programlamaya çalışıyordum.
brainTrend2stop ve braintrend1stop DOT'lar mevcut olduğunda satın alın (ve tam tersi)
ama icustom işlevini böyle çağırırsam
BuyValueCurrent = iCustom(NULL,TimeFrame,IndicatorName1,NumBars,0,1) ;
mevcut çubukta yalnızca göstergenin değerini alıyorum
boolean yapmanın bir yolu var mı? gibi bir fonksiyon yazmak istiyorum
satın=doğru
BuyCondition = (IndicatorName1=true && IndicatorName2=true);
biri yardım edebilir mi lütfen lütfen lütfen???
Bir Giriş Emrinin Gerçekleştirilip Gerçekleştirilmediğini Kontrol Edin...
Pozisyonu açan ve yöneten bir EA'm var, ancak bazen göstergeye aynı sinyali birden fazla veriyor ve bu sinyal her yeni pozisyon çıktığında EA açılıyor - ama ikinci veya üçüncü ve benzeri bir pozisyon istemiyorum, yapacağım sadece ilki - EA'nın bu tür çoklu girişleri önlemek için sihirli sayı ve çift temelinde açık pozisyonu kontrol etmesi mümkün mü?
Merhaba, bir adet programlamaya çalışıyordum ve kursunuzu takip ettim (çok ilginç!)
Java ve bazı c++ ile programlamayı oldukça iyi biliyorum.
Arkasındaki fikir, beyin eğilimi göstergeleriyle bir adet programlamaya çalışıyordum.
brainTrend2stop ve braintrend1stop DOT'lar mevcut olduğunda satın alın (ve tam tersi)
ama eğer icustom işlevini böyle çağırırsam
BuyValueCurrent = iCustom(NULL,TimeFrame,IndicatorName1,NumBars,0,1) ;
mevcut çubukta yalnızca göstergenin değerini alıyorum
boolean yapmanın bir yolu var mı? gibi bir fonksiyon yazmak istiyorum
satın=doğru
BuyCondition = (IndicatorName1=true && IndicatorName2=true);
biri yardım edebilir mi lütfen lütfen lütfen???