Nasıl kodlanır? - sayfa 175

 

Sisteminiz biraz çılgınca geliyor......

extern double Lots=0.1;

extern int TP=50;

extern int SL=50;

extern int timeframe=1;

extern bool close=false;

extern int Slippage=2;

extern int Magic=46151;

int init()

{

return(0);

}

int deinit()

{

return(0);

}

datetime LastTradeTime = 0;

int start()

{

int time=60*timeframe;

if(LocalTime()-LastTradeTime > time) {

if(close==true) {

if(OrdersTotal()!=0) {

for(int i = 0;i < OrdersTotal();i++){

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderType()==OP_SELL && OrderMagicNumber()==Magic) { OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), Slippage, Green ); }

if(OrderType()==OP_BUY && OrderMagicNumber()==Magic) { OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), Slippage, Red ); }

} } }

OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, Ask - SL * Point, Ask + TP * Point, NULL, Magic, 0, Green);

OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, Bid + SL * Point, Bid - TP * Point, NULL, Magic, 0, Red);

LastTradeTime = LocalTime(); }

return(0);

}

Eğer "kapat" doğruysa, zaman diliminin sonunda (bu durumda 1 dakika) açık emirleri kapatacaktır. SL/TP=100, 5 basamaklı bir komisyoncuda 10 pip anlamına gelir.

Bu arada, her iki siparişi de hemen açıp açmayacağından emin değilim.

Aynı anda kapatıp açmak (veya 2 pozisyon açmak) mümkün mü?

Bu elbette geriye dönük testlerde iyi çalışıyor, ancak bir demo/canlı hesapta işe yarayıp yaramadığını bilmiyorum.

 

Bunu ASLA herhangi bir komisyoncu ile çalıştıramadım ...

Siparişlerin kapatılıp açılmadığını kontrol etmek için gecikmeler ve onay kodu ekledim, tekrar denemezseniz.

o zaman bile, hala düzgün çalışmıyor

 

Bu, birçok strateji için bir sorun gibi görünüyor. Bu soruna çözüm bulan var mı?

 

takip eden durdurma sorunu

Sondaki durağımı kullanmaya çalıştığımda yen çiftlerim var; kâra geçtikten sonra fiyatımı "sıfır" a taşıyın. Birisi bana bunun neden olduğunu ve nasıl düzeltileceğini söyleyebilir mi? İz sırası 5 basamaklı para birimlerinde iyi çalışır.

void TrailOrder(int tipi)

{

if(TrailingStop>0)

{

if(OrderMagicNumber() == MagicNumber)

{

if(type==OP_BUY)

{

if(Bid-OrderOpenPrice()>Point*TrailingStop)

{

if(OrderStopLoss()<Teklif Noktası*TrailingStop)

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(Point*TrailingStop),OrderTakeProfit(),0,Green);

}

}

}

if(type==OP_SEL)

{

if((OrderOpenPrice()-Ask)>(Nokta*TrailingStop))

{

if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(Point*TrailingStop),OrderTakeProfit(),0,Red);

}

}

}

}

}

}

 
ajk:
Sondaki durağımı kullanmaya çalıştığımda yen çiftlerim var; kâra geçtikten sonra fiyatımı "sıfır" a taşıyın. Birisi bana bunun neden olduğunu ve nasıl düzeltileceğini söyleyebilir mi? İz sırası 5 basamaklı para birimlerinde iyi çalışır.

Sanırım (sadece benim görüşüm) çünkü bir fonksiyonunuz var ve bu fonksiyon OrderOpenPrice(), OrderStopLoss() vb. hakkında hiçbir şey bilmiyor. Bu kodu döngünün içine koysanız iyi olur.

 
ajk:
Sondaki durağımı kullanmaya çalıştığımda yen çiftlerim var; kâra geçtikten sonra fiyatımı "sıfır" a taşıyın. Birisi bana bunun neden olduğunu ve nasıl düzeltileceğini söyleyebilir mi? İz sırası 5 basamaklı para birimlerinde iyi çalışır.

NormalizeDouble(...) öğesinin dikkatli bir şekilde kullanılması muhtemelen bir fark yaratır mı?

 

farklı ölçeklerle çaprazlanan iki gösterge nasıl kodlanır

farklı ölçeklerle çaprazlanan iki gösterge nasıl kodlanır?

yardım istiyorum

 

Her şeye bir şans vereceğim. Garip, çünkü kodlayıcı gurusu her birini kodladı ve ben değiştirdim. Tonlarca ea'ya baktım ve hiçbir şey bulamadım.

 

kodun nasıl yazılacağına dair herhangi bir öneri

void TrailOrder(int tipi)

arama işlevi ?

Belki işlevi tamamen devre dışı bırakın ve harici e takip eden ea...argh> kullanın!

 
ajk:
kodun nasıl yazılacağına dair herhangi bir öneri

void TrailOrder(int tipi)

arama işlevi?

Belki işlevi tamamen devre dışı bırakın ve harici e takip eden ea...argh> kullanın!

İsterseniz EA'nızı düzeltebilirim. Bana PM'den gönder.

Neden: