[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 567
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
Yeni başlayanlardan bir soru daha.
Uzman Danışmanımda birkaç özel işlev kullanıyorum. Bu işlevleri bir kitaplıkta nasıl birleştirebilirsiniz ve bunları oradan EA'nın gövdesinde nasıl çağırabilirsiniz.
Bu konuda dilin sözdizimine aşina değil.
Lütfen dokümantasyon veya eğitim bölümüne gidin. Orada buna benzer bir şey bulunamadı.
https://book.mql4.com/ru/build/structure
https://www.mql5.com/ru/articles/1462
+ yığına... https://book.mql4.com/en/appendix/examples
Sıfır çubuğunda açık pozlar olup olmadığını veya olup olmadığını kontrol eden bir fonksiyon nasıl yazılır (bir zaman aralığı seçimine sahip olmak istenir. OpenPosLastBar(string sym="", int tf=0, int op=-1, int mn) =-1) veya bu fonksiyon anladığım kadarıyla şu an sadece açık pozlar ve eğer açıksa ve zaten kapalıysa -1 dönecek.
//+------------------------------------------- ------------------------------+
//| Son konum açık çubuğunun veya -1'in numarasını döndürür. |
//| Seçenekler: |
//| sym - enstrüman adı ("" - geçerli sembol) |
//| tf - zaman çerçevesi ( 0 - mevcut zaman çerçevesi) |
//| operasyon - operasyon (-1 - herhangi bir pozisyon) |
//| mn - MagicNumber (-1 - herhangi bir büyü) |
//+------------------------------------------- ------------------------------+
int NumberOfBarLastPos(string sym="", int tf=0, int op=-1, int mn=-1)
{
tarihsaat oot;
int i, k=SiparişToplam();
if(sym=="")
sym=Sembol();
for(i=0; ik; i++)
{
if( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol()==sym)
{
if(OrderType()==OP_BUY || OrderType()==OP_SEL)
{
if(op0 || OrderType()==op)
{
if(mn0 || OrderMagicNumber()==dk)
{
if(ootOrderOpenTime()) oot=OrderOpenTime();
}
}
}
}
}
}
return(iBarShift(sym, tf, oot, True));
}
//+------------------------------------------- ------------------------------+
Нужно два цикла. В первом проходим по истории ордеров, во втором - по текущим ордерам. В обоих случаях если время открытия ордера больше или равно Time[0], то ордер был открыт на текущей свече. Это справедливо для всех таймфреймов.
Bize ulaştığınız için teşekkürler. Bunu kod olarak sorabilir misiniz?
Спадибо, что аткликнулся. А можно попросить это в коде
İşte bir geçmiş geçiş örneği
Özellikle algoritma ve bitmiş örnek gözünüzün önünde olduğundan, kodu kendiniz bulmaya çalışın.
ObjectDelete(a_name_0);
ObjectCreate(a_name_0, OBJ_ARROW , a_window_8, a_datetime_12, a_price_20);
ObjectSet(a_name_0, OBJPROP_ARROWCODE, ai_28);
ObjectSet(a_name_0, OBJPROP_COLOR, a_color_32);
ObjectSet(a_name_0, OBJPROP_WIDTH, a_width_36);
}
geçersiz _setabuy(dize as_0) {
g_str_concat_356 = StringConcatenate(as_0, gi_120);
seta(g_str_concat_356, 0, TimeCurrent(), Teklif + 15.0 * Nokta, SYMBOL_ARROWUP, Mavi, 2);
gi_120++;
}
void _setasell(string as_0) {
g_str_concat_356 = StringConcatenate(as_0, gi_120);
seta(g_str_concat_356, 0, TimeCurrent(), Bid - 15.0 * Nokta, SYMBOL_ARROWDOWN, Kırmızı, 2);
gi_120++;
}
İşte bir geçmiş geçiş örneği
Özellikle algoritma ve bitmiş örnek gözünüzün önünde olduğundan, kodu kendiniz bulmaya çalışın.
Teşekkür ederim. Deneyeceğim.
İşte bir geçmiş geçiş örneği
Özellikle algoritma ve bitmiş örnek gözünüzün önünde olduğundan, kodu kendiniz bulmaya çalışın.
Veya mevcut çubukta pozların açılıp açılmadığını kontrol eden bir fonksiyon var (OrdersTotal() ve OrdersHistoryTotal() ile kontrol). Type siparişi açıldıysa true döndürür.
Lütfen bana koşulu nasıl uygulayacağımı söyle.-
Eğer ( bekleyen emirler varsa ) bunu ve şunu yaparız ;