Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
bu kod, EA'mın açtığı her işlemin açıldığı andan 12 saat sonra sona ermesini sağlamaz ...
Sipariş sona erme süresi yalnızca bekleyen siparişlerde çalışır. OrderSend() OP_BUY veya OP_SELL ise, siparişinizi kod içinde zamanlamanız gerekir. İşte basit bir örnek.
int OrderTime;
OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,Ask+TakeProfit*Point,"timetest",16384,0,Green)
OrderTime=TimeCurrent();
int total = OrdersTotal();
for(int cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if((OrderType() <= OP_SELL) && (OrderSymbol() == Symbol()) )
{
if(OrderType()==OP_BUY && TimeCurrent()-OrderTime>(12*60)*60)
{
OrderClose(OrderTicket(),LotsOptimized(),Bid,3,Violet);
}
}
}Wackena
kod doğru çalışmıyor
Bunu, her saat başı hesabımın durumunu bana e-postayla göndermek için kullandım. ancak derleyip yükledikten sonra. bu e-postayı ertesi saat 59. dakikada olması gerektiği gibi mükemmel bir şekilde gönderdi, ardından bir daha asla göndermedi. neyi yanlış yapıyorum? mükemmel görünüyor?
#59'da ihtiyacım yok, sadece her saat ihtiyacım var!!
bool postası;
int başlangıç()
{
if (Dakika()>=59 && !mail){
SendMail("Hesap Durumu", " Hesap Bakiyesi is="+DoubleToStr(AccountBalance(),2)+"_Account Equity is="+DoubleToStr(AccountEquity(),2)+
"_Account Profit is="+DoubleToStr(AccountProfit(),2)+"_Hesap Marjı is="+DoubleToStr(HesapMargin(),2)+
"_Account Serbest Marj is="+DoubleToStr(AccountFreeMargin(),2));
posta=doğru;
}
belki bir noktada mail = false koymanız veya bu testi mail değişkeninde kaldırmanız gerekir, çünkü elbette mevcut kod sadece 1 posta gönderecektir.
mail değişkeninde ne testi var?..anlayamıyorum lütfen açıklayınız..
peki ya mail=true koyduktan hemen sonra
if (dakika()<=58 && !mail)
posta=yanlış;
Sizce işe yarayabilir mi?...
bence yanlış kodlanmış
koyabilirsin bence
if (dakika()<=58 && mail) // !mail'e değil mail'e dikkat edin
posta=yanlış;
ve bu, ancak ilk if 'nizin dışında olmalıdır, bu nedenle mail = true; ama sonra }
Bunu kodlamanın muhtemelen daha iyi yolları vardır ama bu işe yaramalı
deneyeceğim
teşekkürler deneyeceğim... iki saat sonra haber vereceğim
harika çalışıyor .... ya da en azından öyle görünüyor
?? kodun bu kısmıyla ilgili yardıma ihtiyacınız var
Biri bana bunu nasıl doğru yazacağımı söyleyebilir mi? açık alım satım işlemlerini tek tek ayırmaya çalışıyorum...
yani : açık teklif > 2. ise.
açıksa sor >2
Geri kalanını aldım sadece o kısmı doğru kodlayamıyorum
Biliyorum basit ama saçımı çekiyorum.
kimse?
kimse? vay be belki bu kötü bir soruydu
if(Open[0] > 2){ //açık teklif
//senin kodun
}
if(Open[0]+(Ask-Bid) > 2){ //askı aç
//senin kodun
}
komisyoncunuza bağlı olarak, açık sormanın geriye dönük testi çalışmayabilir