Nasıl kodlanır? - sayfa 54

 

Diğer soru

şimdi benim EA'm böyle

if(HızlıMA2 YavaşMA1)

{

KapatKonumlar();

OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Ask-SLpips*Puan,Ask+(45*Puan),"",MAGIC,0,Mavi);

dönüş(0);

böyle değişmek istiyorum

1. 15 dakikalık zaman dilimi satın al işareti

2. eğer o zaman 5 dakika zaman dilimi MA çapraz satın al işareti de zaten

KapatKonum. ve yeni pozisyon al

o zaman 5 dakika zaman dilimi MA değiştir zaten sat işareti

5 dakika bekleyin zaman dilimi değişikliği satın al işareti,

ardından ClosePosition'ı seçin. ve yeni pozisyon al

Lütfen bana bu programı nasıl yazacağımı söyle.

 
Dosyalar:
 

Merhaba

Demoda kullandığım ve aynı zamanda kodlamayı öğrendiğim bir EA'ya sahip olduğum için biraz yardım arıyorum. Pozisyonu açmak için 4 giriş kriterinden hangisinin kullanıldığını bana göstermek için sisteme nasıl yorum ekleyeceğimi bulmaya çalışıyorum. örneğin, uzun2 kullanılmışsa, uzun2 sinyalini göster

herhangi bir yardım harika olurdu

şerefe

Beno

 
Beno:
Merhaba

Demoda kullandığım ve aynı zamanda kodlamayı öğrendiğim bir EA'ya sahip olduğum için biraz yardım arıyorum. Pozisyonu açmak için 4 giriş kriterinden hangisinin kullanıldığını bana göstermek için sisteme nasıl yorum ekleyeceğimi bulmaya çalışıyorum. örneğin, uzun2 kullanılmışsa, uzun2 sinyalini göster

herhangi bir yardım harika olurdu

şerefe

Beno

Koşulunuz karşılandıktan ve Ordersend() komutunu kullandıktan sonra, bir Comment(), Alert() veya Print() ifadesi eklemeniz yeterlidir. Hangisini kullanmak istersen.

Bunun gibi bir şey:

if ( uzun2 == doğru)

{

Sipariş Gönder();

{

Print("long2 sinyali alındı");

}

}

Umarım yardımcı olur.

 

teşekkürler Wolfe

Gülmek zorunda kaldım, önerdiğiniz şeyi koydum ve işe yaradı ama şimdi sadece yorumum var ve açık pozisyon yok. herhangi bir ipucu

bool Uzun = MAofRSI11>MAofRSI21 && MAofRSI12VolHL && RSIndex1HL2 && TrStop0.0 && SDLL && ma<Close[shift];

bool Short = MAofRSI11=MAofRSI22 && VolCH>VolHL && RSIndex1HLM && TrStop>Close[shift] && MOMClose[shift];

bool Long2 = MAofRSI11>HLM && MAofRSI12HLM && MAofRSI22VolHL && TrStop0.0 && SDLL && ma<Close[shift];

bool Short2 = MAofRSI11=HLM && MAofRSI21=HLM && VolCH>VolHL && TrStop>Kapat[shift] && MOMClose[shift];

bool Long3 = RSIndex1-RSIndex2>20<HL2 && TrStop0.0 && SDLL && ma<Close[shift];

bool Short3 = RSIndex2-RSIndex1>20>HL1 && TrStop>Kapat[shift] && MOMCkapat[shift];

bool Uzun4 = zscore>0.0 && ma<Kapat[shift];

bool Short4 = zscoreClose[shift];

buysig = Uzun || Uzun2 || Uzun3 || Uzun4;

sellsig = Kısa || Kısa2 || Kısa3 || Kısa4;

yakın satın alma=satış;

closesell=satın alma;

if (curprof>=AccountBalance()*ProfitExit/100.0) {

çıkış=doğru;

}

if (last>0 && (Time[0]-last)/(Period()*60)>=CancelOrderBars) {

yeniden düzen=doğru;

}

}

geçersiz CheckForOpen() {

int res,tr;

//---- satış koşulları

co=CalculateCurrentOrders(Symbol());

if(sellsig && lastsig!=-1) {

co=CalculateCurrentOrders(Symbol());

if (co==0) {

if (Kısa == doğru)

if ( Kısa2 == doğru)

if (Kısa3 == doğru)

res = OpenStop(OP_SELLSTOP,LotsRisk(StopLoss), Low[shift]-OrderPipsDiff*Point, StopLoss, TakeProfit1);

Print("Kısa sinyal alındı");

Print("Kısa2 sinyali alındı");

Print("Kısa3 sinyal alındı");

Print("Kısa4 sinyal alındı");

}

sonsig=-1;

son=Zaman[0];

dönüş;

}

//---- satın alma koşulları

if(buysig && lastsig!=1) {

co=CalculateCurrentOrders(Symbol());

if (co==0) {

if ( Uzun == doğru)

if ( Uzun2 == doğru)

if ( Uzun3 == doğru)

if ( Uzun4 == doğru)

res = OpenStop(OP_BUYSTOP,LotsRisk(StopLoss), High[shift]+OrderPipsDiff*Point, StopLoss, TakeProfit1);

Print("Uzun sinyal alındı");

Print(" Long2 sinyali alındı ");

Print(" Long3 sinyali alındı ");

Print(" Long4 sinyali alındı ");

}

son=Zaman[0];

sonsig=1;

dönüş;

}

}

düzelttim teşekkürler

 

Hata ayıklama kodu

Böyle bir kodu nasıl ve nerede kullanırsınız? Düzeltmenin nasıl olduğunu bulamadığım bir Sıfır bölme hatası var.

extern bool DEBUGGING = true

...

if(DEBUGGING && değişkenAdı == 0) Print("CodePoint 1 -- Bu değişken artık ", değişkenAdı);

... daha fazla kod

if(DEBUGGING && değişkenAdı == 0) Print("CodePoint 2 -- Bu değişken artık ", değişkenAdı);

... daha fazla kod

if(DEBUGGING && değişkenAdı == 0) Print("CodePoint 3 -- Bu değişken artık ", değişkenAdı);

...

 

bana yardım edebilir misin? kodda neden birçok hata var?

bu SMMA'yı hesaplamak içindir:

for(j=0;j<Çubuklar;j++)

{

for(i=0,sum=0;i<ma_period;i++)

{

toplam=toplam+Kapat[j+i];

// arabellek[j]=(toplam-toplam/ma_dönemi+Kapat[j+i])/ma_dönemi;

}

tampon[j]=(toplam-toplam/ma_period+Kapat[j])/ma_period;

}

bu LWMA'yı hesaplamak içindir

for(j=0;j<Çubuklar;j++)

{

for(i=0,sum=0,sum1=0;i<ma_period;i++)

{

toplam=toplam+Kapat[j+i];

toplam1=toplam1+Kapat[j+i]*(j+i);

// arabellek[j]=toplam/ma_period;

}

arabellek[j]=toplam1/toplam;

}

ve EMA nasıl hesaplanır?

 

göstergelerle ilgili soru

Herkese selam.

Bir programlama sorununa takıldım. Başka bir ayarı değiştirmek için 1 gösterge sonucunun nasıl kullanılacağını bilen var mı? Örneğin, günlük stokasti 20'nin üzerinde olsaydı, hareketli bir ortalama (x) isterdim. Aşağıda çalışan kodu almaya çalıştım ama boşuna olduğunu bilmek. Anahtarı alamıyorum ya da eithor'da çalışmak için başka bir komut varsa.

çift fourhrUP;

double daytoch1 = iStochastic(NULL, PERIOD_D1,5, 3, 3, MODE_SMA, 0, MODE_MAIN,1);

çift günstoch20 = 20;

if (daystoch1 > daystoch20) four_hrUP = 5 ;

double iMA( string sembolü, int zaman çerçevesi, four_hrUP , int ma_shift, int ma_method, int uygulanan_fiyat, int shift)

 
ajk:
Herkese selam.

Bir programlama sorununa takıldım. Başka bir ayarı değiştirmek için 1 gösterge sonucunun nasıl kullanılacağını bilen var mı? Örneğin, günlük stokasti 20'nin üzerinde olsaydı, hareketli bir ortalama (x) isterdim. Aşağıda çalışan kodu almaya çalıştım ama boşuna olduğunu bilmek. Anahtarı alamıyorum ya da eithor'da çalışmak için başka bir komut varsa.

çift fourhrUP;

double daytoch1 = iStochastic(NULL, PERIOD_D1,5, 3, 3, MODE_SMA, 0, MODE_MAIN,1);

çift günstoch20 = 20;

if (daystoch1 > daystoch20) four_hrUP = 5 ;

double iMA( string sembolü, int zaman çerçevesi, four_hrUP , int ma_shift, int ma_method, int uygulanan_fiyat, int shift)

MA'nızın değişkeni nerede?

Belki bu yardımcı olabilir

double ma4hr= iMA( string sembolü, int zaman çerçevesi, four_hrUP , int ma_shift, int ma_method, int uygulanan_fiyat, int shift) ;

stok hesaplaması aynı döngüdeyse, "for(int shift=limit-1; shift>=0; shift--)" diyelim, stok kodu şöyle olmalıdır:

double daytoch1 = iStochastic(NULL, PERIOD_D1,5, 3, 3, MODE_SMA, 0, MODE_MAIN,shift+1);

CMIIW

 

Bir Göstergeyle Küçük Bir Yardım - Kodlayıcı Lütfen Bakın

Fiyat tekliflerinde Kesirli Pipler (pipetler) kullanan bir MT4 Broker Platformunu test ediyorum: Örneğin EURJPY'de 164.38 yerine 164.381 olarak fiyat veriyorlar - Bu, spread'in 4.1 pip (4 yerine) gibi bir ondalık sayıya sahip olduğu anlamına geliyor.

Yayılmanın düzgün bir şekilde okunması için aşağıdaki kodu nasıl DEĞİŞTİRECEĞİMİ söyleyen var mı? Şu anda 4.1 piplik bir spread, Göstergede 41.0 olarak okunacaktır. Herhangi bir yardım takdir edilmektedir.

Dan

//---- yayılmış

Spread=NormalizeÇift((Ask-Teklif)/Puan,1);

ObjectSetText("Spread Monitor1","Spread:", 10, "Arial", labelColor);

ObjectSetText("Spread Monitor2",DoubleToStr(Spread,1),10, "Arial", clockColor);

Neden: