Kodlama yardımı - sayfa 16

 
nontan:
Merhaba, dahi kodlayıcı ve nazik insanlar :D

Şimdi basit bir EA geliştiriyorum ama aşağıdaki koşulları anlayamıyorum.

Önceki pozisyon Take Profit tarafından kapatılırsa, bir sonraki açılış fiyatında s/l ve t/p ile 20 pip ayarlayan yeni bir giriş yapın.(5M grafiğinde)

Bir tane yazmaya çalıştım.

if(OrderSelect(1,SELECT_BY_POS,MODE_HISTORY)) //Son pozisyon anlık siparişti OP_BUY veya OP_SELL

{

if(OrderClosePrice() == OrderTakeProfit()) // EĞER kapanış fiyatı kar al fiyatı ile aynıysa

{

if(OrderType() == OP_BUY) //Bu siparişin sipariş türü satın al

{

OrderSend(OP_BUY,Lots,Ask,Slippage,SLpips,Ask+20*Point,"",MAGIC);// Lot ve diğer değişkenler tarafımca tanımlanır

}

else if(OrderType() == OP_SELL)

{

OrderSend(OP_SELL,Lots,Bid,Slippage,SLpips,Bid-20*Point,"",MAGIC);

}

}

Strateji test cihazı tarafından birçok kez çalıştırmayı denedim, ancak umduğum gibi hareket edemiyorum.

Bazı vücut bana bu sorudan yardım etsin!

Saygılarımızla.

[lang=pl]Merhaba,

EA'nın tüm kodunu ekleyebilir misiniz?

Şerefe,

Grzesiek[/lang]

 

...

Bunu karşılaştırmada kullanmayı deneyin

if (NormalizeDouble(OrderClosePrice(),Digits) == NormalizeDouble(OrderTakeProfit(),Digits))

belki bu yardımcı olur

nontan:
Merhaba, dahi kodlayıcı ve nazik insanlar :D

Şimdi basit bir EA geliştiriyorum ama aşağıdaki koşulları anlayamıyorum.

Önceki pozisyon Take Profit tarafından kapatılırsa, bir sonraki açılış fiyatında s/l ve t/p ile 20 pip ayarlayan yeni bir giriş yapın.(5M grafiğinde)

Bir tane yazmaya çalıştım.

if(OrderSelect(1,SELECT_BY_POS,MODE_HISTORY)) //Son pozisyon anlık siparişti OP_BUY veya OP_SELL

{

if(OrderClosePrice() == OrderTakeProfit()) // EĞER kapanış fiyatı kar al fiyatı ile aynıysa

{

if(OrderType() == OP_BUY) //Bu siparişin sipariş türü satın al

{

OrderSend(OP_BUY,Lots,Ask,Slippage,SLpips,Ask+20*Point,"",MAGIC);// Lot ve diğer değişkenler benim tarafımdan tanımlanır

}

else if(OrderType() == OP_SELL)

{

OrderSend(OP_SELL,Lots,Bid,Slippage,SLpips,Bid-20*Point,"",MAGIC);

}

}

Strateji test cihazı tarafından birçok kez çalıştırmayı denedim, ancak umduğum gibi hareket edemiyorum.

Bazı vücut bana bu sorudan yardım etsin!

Saygılarımızla.
 

Sağolun beyler.

NormarizeDouble'ı eklemeye çalıştım ama işe yaramadı ..

Bana neden çalışmadığını öğretir misin?

-------------------------------------------------- -

#Dahil etmek

#define MAGIC 20120101

#define YORUM "Binicilik9"

harici çift Lot = 0.1;

extern int Kayma = 3;

harici int SLpips = 20;

harici int TPipler = 50;

harici int Başlangıç Zamanı = 1;

harici int FinishTime = 23;

extern int MAPeriod = 48;

int EntrySignal(int büyü)

{

çift konum = MyCurrentOrders(MY_OPENPOS, büyü);

double Ma9 = iMA(NULL, 0, MAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);

int ret = 0;

if((kon <= 0) && (Kapat[3] Aç[2] && Aç[2] >= Ma9) || (Aç[2] Ma9)) && (Kapat[1] > Aç[1] && Aç [1] > Ma9)) ret = 1;

else if((kon <= 0) && (Aç[3] Ma9) && (Kapat[2] Ma9) && (Kapat[1] > Aç[1] && Kapat[1] > Ma9)) ret = 1;

if((kon >= 0) && (Kapat[3] >= Ma9) && ((Kapat[2] < Aç[2] && Aç[2] Ma9 && Kapat[2] < Ma9)) && (Kapat[1] ] < Aç[1] && Aç[1] < Ma9)) ret = -1;//

else if((kon >= 0) && (Aç[3] > Ma9 && Kapat[3] Aç[2] && Aç[2] < Ma9) && (Kapat[1] < Aç[1] && Kapat[1] < Ma9)) ret = -1;

dönüş(ret);

}

bool MyOrderSendSL(int tipi, çift lot, çift fiyat, int kayması, int slpips, int tppips, string yorumu, int magic)

{

int çok=1;

if(Rakamlar == 3 || Basamaklar == 5) çok=10;

kayma *= çok;

if(type==OP_SELL || type==OP_SELLLIMIT || type==OP_SELLSTOP) çok *= -1;

çift sl=0, tp=0;

if(slpips > 0) sl = fiyat-slpips*Puan*çoklu;

if(tppips > 0) tp = fiyat+tppips*Puan*çoklu;

return(MyOrderSend(tür, lotlar, fiyat, kayma, sl, tp, yorum, büyü));

}

int başlangıç()

{

if(Hour() >= StartTime && Hour() < FinishTime)

{

int sig_entry = EntrySignal(MAGIC);

if(sig_entry > 0)

{

MyOrderClose(Kayma, MAGIC);

MyOrderSendSL(OP_BUY, Lot, Sor, Kayma, SLpips,TPpips, YORUM, MAGIC);

}

if(sig_entry < 0)

{

MyOrderClose(Kayma, MAGIC);

MyOrderSendSL(OP_SEL, Lot, Teklif, Kayma, SLpips,TPpips, YORUM, MAGIC);

}

if(Sipariş Seçimi(1,SELECT_BY_POS,MODE_HISTORY))

{

if (NormalizeDouble(OrderClosePrice(),Digits) == NormalizeDouble(OrderTakeProfit(),Digits))

{

if(OrderType() == OP_BUY)

{

OrderSend(OP_BUY,Çok,Sor,Slippage,SLpips,Sor+20*Puan,"",MAGIC);

}

else if(OrderType() == OP_SELL)

{

OrderSend(OP_SELL,Lots,Bid,Slippage,SLpips,Bid-20*Point,"",MAGIC);

}

}

}

dönüş(0);

}

dönüş(0);

}

-------------------------------------------------- ----

Lütfen keşfederseniz bana yanlışımı öğretin.

Saygılarımızla.

 

...

bronz olmayan,

Bu hat
if (OrderSelect(1,SELECT_BY_POS,MODE_HISTORY))

[/PHP]

Kapanan emirler kuyruğunda son kapatılan emri değil, ilk (ilk bakiyeden sonraki) emri seçer. Bu nedenle, son siparişin ne olduğunu kontrol etmek ve ardından ona uyum sağlamak yerine her zaman sabit bir siparişi kontrol ediyor. Son kapanan emri test etmek istiyorsanız (kapalı emirler kuyruğunda sonuncusu, ancak metatrader'ın [insanlar kapanış tarihine göre sıralandığında son olduğunu garanti etmiyorlar) bu kontrol formunu kullanmalısınız.
[PHP]if (OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
 

teşekkür ederim, mladen

OrderHistoryTotal fonksiyonunu henüz kullanmadım. Bu kod için uygun bir fonksiyon.

Sonunda, değiştirdikten sonra bir arzu kodum oldu. Sonuç olarak EA, TakeProfit'i aldıktan sonra yeni giriş yapmak için çalışıyor.

Kurumsallığınız ve her şey için teşekkür ederiz.

 

Yardımınıza ihtiyacım var usta kodlayıcılar

merhaba, lütfen stratejimi kodlamama yardım edecek birine ihtiyacım var

 
johnray:
merhaba, lütfen stratejimi kodlamama yardım edecek birine ihtiyacım var

[lang=pl]Bana bir ayrıntı ver

Şerefe[/lang]

 

pm gönderdim

g.pociejewski:
[lang=pl]Bana bir ayrıntı ver Şerefe[/lang]

teşekkürler hocam pm gönderdim biraz karışık

 

Otomatik yenileme kodu

Sürekli yenileme gerektiren bir gösterge kullanıyorum. 15 dakikalık bir çizelge kullanıyorum, bu yüzden her keneyi yenilemeye gerek yok, ancak büyük bir güç kaybı olmazsa bu iyi olur. En azından her yenileme arasındaki zaman aralığı seçeneğine sahip olmalıdır. Şu anda, aşağı açılan 'Grafikler' sekmesini kullanarak ve 'Yenile'yi seçerek her dakika manuel olarak yeniliyorum.

İndi'de veya bir EA'da ek kod aracılığıyla, indi'yi ve/veya grafiği otomatik olarak yenilemenin bir kodu veya yolu var mı?

Teşekkürler el arı

 

[langtitle=fr]Wilder'dan orijinal gösterge Parabolic Sar[/langtitle]

[lang=fr]
Merhaba!

Wilder'ın quiproquo ORİJİNAL parabolik SAR'ını arıyorum. Bu göstergenin kodunu PRT platformu için yaptım ama MT4'te kodlama bilmiyorum.

MT4 kodlaması hakkında bilgisi olan varsa özel mesaj ile verebilirim, MT4 kodlamaya uyarlamak için.

teşekkürler
[/lang]
Neden: