[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 1121
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
iyi günler/geceler
İşe yaramayacak kadar ilkel bir şekilde anlaşmayı tersine çevirmeye çalışıyorum (EA'daki hesaplama kenelerle yapılıyor):
if(CalculateCurrentOrders(Symbol())>0 && Close[1]<LowLevel) // alım emri olup olmadığını belirler && mum düşük seviyenin altında kapanırsa
{
CheckForClose(); // siparişi kapat
OpenSell(); // satış emri açma
dönüş;
}
Söyle bana neyi yanlış yapıyorum? Bu boşluğu doldurmaya yardımcı olacak bağlantılar için de minnettar olurum.
dzhini :
Anlaşmayı o kadar ilkel bir şekilde tersine çevirmeye çalışıyorum ki bu işe yaramıyor (EA'daki hesaplama kenelere göre gidiyor):
if( CalculateCurrentOrders(Symbol())> 0 && Close[1]<LowLevel) // satın alma emri olup olmadığını belirler && mum düşük seviyenin altında kapanırsa
Time1 ve Time2 arasında kaç dakika olduğu nasıl belirlenir?
bu fonksiyonda muhtemelen tüm siparişleri sayarsınız. ama Bai'ye ihtiyacın var
Bu standart işlevdir:
int CalculateCurrentOrders(dize sembolü)}
>0 ise, bunlar alış emirleridir , <0 ise satış emirleridir)))
Time1 ve Time2 arasında kaç dakika olduğu nasıl belirlenir?
fark saniye sayısını döndürür.
60'a bölün. dakika sayısını alın.
dış çift TP = 70; //kar almak
dış çift SL = 0; //kaybı durdurmak
harici çift Parti = 0.1;
çift HighLevel;
çift LowLevel;
intresBuy=0;
intresSell=0;
//+------------------------------------------- --------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- --------------------+
int init()
{
HighLevel=Yüksek[1];
LowLevel=Düşük[1];
dönüş;
}
//+------------------------------------------- --------------------+
//| uzman işlevi |
//+------------------------------------------- --------------------+
geçersiz başlangıç()
{
if(Bars<100 && IsTradeAllowed()==false) return;
if(resBuy==0 && resSell==0 && CheckBreak()==-1)
{
resSell=SiparişGönder(Symbol(),OP_SELL,Lot,Teklif,2,0,Teklif -TP,"",MAGICMA,0,Kırmızı);
HighLevel=DüşükSeviye;
LowLevel=Kapat[1];
dönüş;
}
if(resBuy==0 && resSell==0 && CheckBreak()==1)
{
resBuy=SiparişGönder(Symbol(),OP_BUY,Lot,Sor,2,0,Sor + TP,"",MAGICMA,0,Mavi);
DüşükSeviye=YüksekSeviye;
HighLevel=Kapat[1];
dönüş;
}
if(resBuy!=0 && resSell==0 && Kapat[1]<LowLevel) //----------------------------- -------- bu kısım ilgi çekicidir: aynı çubukta kapanma ve açılma
{
bool closeBuy=SiparişKapat(resBuy, Lot, Bid, 2, Blue);
// while(!IsTradeAllowed()) Sleep(100);
resSell=SiparişGönder(Symbol(),OP_SELL,Lot,Teklif,2,0,Teklif -TP,"",MAGICMA,0,Kırmızı);
HighLevel=DüşükSeviye;
LowLevel=Kapat[1];
dönüş;
}
if(resSell!=0 && resBuy==0 && Kapat[1]>YüksekSeviye) //-------------------------------- -------- bu kısım ilgi çekicidir: aynı çubukta kapanma ve açılma
{
bool closeSell=SiparişKapat(resSell, Lot, Ask, 0.0002, Red);
// while(!IsTradeAllowed()) Sleep(100);
resBuy=SiparişGönder(Symbol(),OP_BUY,Lot,Sor,2,0,Sor + TP,"",MAGICMA,0,Mavi);
DüşükSeviye=YüksekSeviye;
HighLevel=Kapat[1];
dönüş;
}
}
//------------------------------------------------ ----------------- Düşük ve Yüksek molayı kontrol et (Func)
çift CheckBreak()
{
çift mum=Aç[1]-Kapat[1];
if(candle>0 && Low[1]<LowLevel) return(-1);
if(mum<0 && Yüksek[1]>YüksekSeviye) dönüş(1);
}
fark saniye sayısını döndürür.
60'a bölün. dakika sayısını alın.
Benim için sadece 1971.03.04 12:00 tarihini gösteriyor, belki dönüştürülmesi gerekiyor?
Sadece benim için tarihi gösteriyor, belki dönüştürülmesi gerekiyor?
ilk - neden 60 ile çarpıyorsun
ikincisi - ekranda dakika sayısını 00:15 gibi bir süre olarak görüntülemek istiyorsanız,
60 ile bölmeye veya çarpmaya gerek yok.
ilk - neden 60 ile çarpıyorsun
ikincisi - ekranda dakika sayısını 00:15 gibi bir süre olarak görüntülemek istiyorsanız,
60 ile bölmeye veya çarpmaya gerek yok.
Evet bölme için düzelttim ama yıl çıkıyor 1970.01.01 02:51
Ekran için buna ihtiyacım yok, sadece bu süre için tarihsiz dakika sayısını bulmak istedim ....
Bölmeseniz bile, yine de tarihi görüntüler, yoksa yine de işlevin iptal edildiği tarihi çıkarmam gerekir mi?
Yalnızca dakika sayısına ihtiyacınız varsa, TimeToStr kullanmanız için kesinlikle hiçbir neden yoktur.
Zaman sıradan bir int sayısıdır
Veya bir seçenek olarak - TimeToStr'ı yalnızca TIME_MINUTE bayrağıyla kullanın