Nasıl kodlanır? - sayfa 92

 
delvinja:
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.
double ... = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);[/PHP]

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 Var1 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);

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.

 
delvinja:
... 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

Dosyalar:
javadea.mq4  9 kb
 

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:

'TradeSymbol' - expression on global scope not allowed I:\Program Files\MetaTrader - Alpari\experts\TTL.mq4 (65, 34)[/CODE]

Now the part of the ea causing this is right at the start of the code :

string TradeSymbol; TradeSymbol=Symbol();

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

 
basza:
herkese selam

Derlemek için bir ea almaya çalışıyorum, ancak aşağıdaki hatayla çıkıyor:

'TradeSymbol' - expression on global scope not allowed I:\Program Files\MetaTrader - Alpari\experts\TTL.mq4 (65, 34)[/CODE]

Now the part of the ea causing this is right at the start of the code :

string TradeSymbol; TradeSymbol=Symbol();

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

TradeSymbol'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:

void Init(){TradeSymbol=Symbol();}
 

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ü?

 
payback:
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???
BuyCondition = BuyValueCurrent1 != EMPTY_VALUE && BuyValueCurrent2 != EMPTY_VALUE;
Neden: