Nasıl kodlanır? - sayfa 22

 

Bir çarpınız olduğunda her zaman int crossTime = Time[0] yazabilir ve ardından kaç çubuğun geçtiğini kontrol etmek için crossTime değişkenini kullanarak iBarShift işlevini kullanabilirsiniz.

 

Merhaba Kalenzo,

Kalenzo:
Bir çarpınız olduğunda her zaman int crossTime = Time[0] yazabilir ve ardından kaç çubuğun geçtiğini kontrol etmek için crossTime değişkenini kullanarak iBarShift işlevini kullanabilirsiniz.

Sayıma yalnızca "Ayı Çubuklarını" dahil etmek için bu kodu nasıl yazarsınız?

Ibarshift'i anlıyorum ama bu, çaprazdan beri tüm çubukları içerecektir. Yine de "Ayı Çubuklarını" saymak için sahip olduğum gibi bir sayım sistemi kullanmanız gerekecek ve benim sorunumun burada yattığına inanıyorum.

Başlangıçta kodumu bu kodla test ettim .... Bu iyi çalıştı .... ama aslında EA'mda listelenecek olan yukarıdaki koda tercüme etmedim.

int start()

{

//----

double f=iMA(NULL,0,3,0,MODE_SMA,PRICE_CLOSE,0);

double s=iMA(NULL,0,7,0,MODE_SMA,PRICE_CLOSE,0);

double fp=iMA(NULL,0,3,0,MODE_SMA,PRICE_CLOSE,1);

double sp=iMA(NULL,0,7,0,MODE_SMA,PRICE_CLOSE,1);

static bool CrossedUP,CrossedDn;

static int Count=0;

if(f>s && fp<=sp)

{

CrossedUP=true;

CrossedDn=false;

Alert(Symbol()," Crossed UP");

Count=0;

}

else

if(f=sp)

{

CrossedUP=false;

CrossedDn=true;

Alert(Symbol()," Crossed Down");

Count=0;

}

if(NewBar()==true && f>s || f<s) Count++;

Comment("Crossed UP: ",CrossedUP," Crossed Down: ",CrossedDn," Bars since Cross: ",Count);

//----

return(0);

}

Başka düşünceler takdir edilecektir.

Teşekkürler,

saksofoncu

 

özür dilerim omlet

Bu da çalışmıyor

Teşekkürler,

saksofoncu

omelette:
Merhaba. Bunu dene.
bool LongClose()

{

if(MAFastC=MASlowP)

{

CrossedUp=false;

CrossedDn=true;

BarCount=0;

}

else

if(MAFastC>MASlowC && MAFastP<=MASlowP)

{

CrossedUp=true;

CrossedDn=false;

BarCount=0;

Alert("Crossed Down");

}

if(CrossedDn==true && NewBar()==true && Candle3mP=="Bear")

BarCount++;

if(BarCount>=2 && Candle3mC=="Bear")

{

Alert("Close Long Position");

return(true);

}

else return(false);
 

EA kodu ile zaman sınırı

EA'ma bir zaman sınırı koyamıyorum

kod satırı aşağıdaki gibidir:

OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,Ask+TakeProfit*Point,"timetest",16384, 0 ,Yeşil)

SIFIR'ı 1 veya 12 olarak değiştirmeyi denedim ve takası durdurmasını sağlayamıyorum ... takasın 12 saat içinde sona ermesini istiyorum bunu nasıl yapabilirim?

Geri test kullanıyorum . çalıştığından emin olmak için .. sona erme işlevi bununla çalışıyor mu?

 

Bunu dene....

{

string son kullanma_tarihi = "2007.10.22";

tarihsaat süre sonu var = StrToTime(expire_date);

if ( CurTime() >= süre sonu var )

{

Uyarı ("Sürüm Süresi Doldu");

dönüş(0);

}

// kod

dönüş(0);

}

Dave

 
islandrock:
EA'ma bir zaman sınırı koyamıyorum

kod satırı aşağıdaki gibidir:

OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,Ask+TakeProfit*Point,"timetest",16384, 0 ,Yeşil)

SIFIR'ı 1 veya 12 olarak değiştirmeyi denedim ve takası durdurmasını sağlayamıyorum ... takasın 12 saat içinde sona ermesini istiyorum bunu nasıl yapabilirim?

Geri test kullanıyorum. çalıştığından emin olmak için .. sona erme işlevi bununla çalışıyor mu?

hata kanalını kontrol edin;

Bazı ticaret sunucularında bekleyen emir sona erme süresinin uygulanması devre dışı bırakılabilir. Bu durumda, süre sonu parametresinde sıfır olmayan bir değer belirtildiğinde, 147 hatası (ERR_TRADE_EXPIRATION_DENIED) üretilecektir.

parametre bir 'datetime' değişkenidir, 12'nin bu değişken bildirimine gireceğine inanmıyorum.

 
islandrock:
EA'ma bir zaman sınırı koyamıyorum

kod satırı aşağıdaki gibidir:

OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,Ask+TakeProfit*Point,"timetest",16384, 0 ,Yeşil)

SIFIR'ı 1 veya 12 olarak değiştirmeyi denedim ve takası durdurmasını sağlayamıyorum ... takasın 12 saat içinde sona ermesini istiyorum bunu nasıl yapabilirim?

Geriye dönük test kullanıyorum. çalıştığından emin olmak için .. sona erme işlevi bununla çalışıyor mu?

Merhaba. Sona erme zaman aşımları MT ile iyi çalışır, tek uyarı bazı brokerlerin bunlara izin vermemesidir - FXDD bunlardan biridir. Çalışması için sona erme süresinin tarih saat biçiminde olması gerekir - yani.

datetime ExpirationTime = StrToTime(TimeYear(Time[0]) + "." + TimeMonth(Time[0])+ "." + TimeDay(Time[0])+" "+23+":"+55); OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,Ask+TakeProfit*Point,"timetest",16384, ExpirationTime ,Green);
 

Bunu denedim.

harici int TradeLifeHour=12;

harici int TradeLifeMin=00;

tarihsaat sona ermesaati; (burada ne olduğunu bilmiyordum)

sonra start() içinde

sona erme süresi = CurTime()+TradeLifeHour*60*60+TradeLifeMin*60;

ve 0'da sona erme süresini kullanın alan.

ben son kod ama 12 saat içinde ticaretin sona ermesi için nasıl yapılandıracağımı bilmiyorum

 
xxDavidxSxx:
Bunu dene....

{

string son kullanma_tarihi = "2007.10.22";

tarihsaat süre sonu var = StrToTime(expire_date);

if ( CurTime() >= süre sonu var )

{

Uyarı ("Sürüm Süresi Doldu");

dönüş(0);

}

// kod

dönüş(0);

}

Dave

Ben sadece sana verdiğim kodu kullandım. Tarihi 2006 olarak değiştirdim ve gerçek para FXDD hesabında Bipoler içinde rastgele bir yere tokatladım ve bir cazibe gibi çalıştı.

Ya da mabe madenleri çok basit mi? Bilmiyorum

Dave

 

??

bu kod, EA'mın açtığı her işlemin açıldığı andan 12 saat sonra sona ermesini sağlamaz ...