Yeni başlayanlardan sorular MQL4 MT4 MetaTrader 4 - sayfa 121
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
En az bir blok yazın ve gösterin. Daha fazla burada bu durumda istemi.
Dizilere göre: burada küresel düzeyde 4 dizi ilan ettim:
Ardından, pozisyon açma fonksiyonunda onları sıfırladım:
Şimdi onları nasıl dolduruyorsun? Bunu yapmaya çalıştığım örnekte, ek bir değişken uygulanıyor, ancak nasıl kullanılacağını anlamıyorum:
Tüm bu dizilere neden ihtiyaç duyulduğu tam olarak belli olmasa da ilgili fonksiyonu kullanarak bilet, pozisyon tipi, açılış fiyatı ve açılış zamanı değerlerini alabildiğimde.
Dizilere göre: burada küresel düzeyde 4 dizi ilan ettim:
Ardından pozisyon açma fonksiyonunda onları sıfırladım:
Şimdi onları nasıl dolduruyorsun? Bunu yapmaya çalıştığım örnekte, ek bir değişken uygulanıyor, ancak nasıl kullanılacağını anlamıyorum:
Tüm bu dizilere neden ihtiyaç duyulduğu tam olarak belli olmasa da ilgili fonksiyonu kullanarak bilet, pozisyon tipi, açılış fiyatı ve açılış zamanı değerlerini alabildiğimde.
Uyarı işlevini kullanarak tüm ara verileri görüntüleyerek sıfırdan yazmayı deneyin (. Örneğin
Ve eğer birinin örneğini alırsanız, onu tamamen alın ve inceleyin. Kim bilir, örneğin yazarı neden diziler ekledi?
Dizilere göre: burada küresel düzeyde 4 dizi ilan ettim:
Bir dizi yapı kullanın. Onunla anlaşmak çok daha kolay olacak. Statik dizili bir değişken veriyorum. Anlamak daha kolay. Kendim dinamik diziler kullanmama rağmen. Ancak onlarla, kod biraz daha ortaya çıkacak.
Ardından, pozisyon açma fonksiyonunda onları sıfırladım:
Hayır, iptal etmediler. Sonuçta, varsayılan olarak sıfır boyutuna sahip olan dinamik diziler bildirilir. Yani bu durumda, bu dört kod satırı hiçbir şey yapmaz.
Şimdi onları nasıl dolduruyorsun? Bunu yapmaya çalıştığım örnekte, ek bir değişken uygulanıyor, ancak nasıl kullanılacağını anlamıyorum:
Daha sonra, her "kendi" siparişin bir dizide saklandığı bir sipariş döngüsü düzenlenir:
Tüm bu dizilere neden ihtiyaç duyulduğu tam olarak belli olmasa da ilgili fonksiyonu kullanarak bilet, pozisyon tipi, açılış fiyatı ve açılış zamanı değerlerini alabildiğimde.
Dizilerle çalışmak daha uygun ve daha hızlıdır, çünkü genel durumda, hesaptaki tüm siparişlerin bu Uzman Danışman tarafından işlenmesi gerekmez. Sonuç olarak, zamandan ve paradan tasarruf ediyoruz.
Ayrıca yine genel durumu verdim. Ve elbette evrenselcilik her zaman gerekli değildir. Tipik olarak, bu tür diziler, stratejinin gereksinimlerine göre derlenir. Örneğin, emirleri hemen türlere ayırabilirsiniz: Buy, Sell, BuyStop, SellStop, BuyLimit, SellLimit. O zaman böyle dört diziye ihtiyacımız var. Ancak daha sonra, alım satım kararları verirken, tüm açık emirler listesini tekrar gözden geçirmeniz gerekmeyecektir. Belirli bir türdeki siparişlerin sayısını bulmak ve gerekli diziye başvurmak yeterlidir.
Dikkate alınması gereken bir diğer önemli nokta, bir onayın işlenmesi sürecinde siparişlerin bileşimindeki değişikliktir. OnTick'in girişinde bir sipariş listesi ve ortada bir yerde - bir başkası alınmış olabilir. Bulması zor bir program hatası alıyoruz. Ve OnTick'e girerken derlenen emir dizisi değişmeyecektir (tabii ki, programın yürütülmesi sırasında kendiniz değiştirmediğiniz sürece).
string s=FileReadString(F1); // Bir metin dosyasının sonraki satırını okuma
StringSplit(s, "," , a); // Virgülle ayrılmış dize öğelerini bir diziye ayıklayın
tarihsaat T1=StrToTime(a[4]); // Sonra dönüşümlerim var ...
int ord=StrToInteger(a[8]);
double Fiyat=StrToDouble(a[12]);
Teşekkür ederim, ne istedim
Ayrıca, 5 ürünün üretildiği ortaya çıktı.
uyarıya göstergeler atarız (herhangi bir)
ör. seviye "200"
ve uyarı tetiklendiğinde, bir şey pozu açar, bir şey kendini kaldırır, bir şey başka eylemler yapar. Bu şekilde bir sinyal mekanizması uygulamak istiyorum
ZY
İstediğimi ekledim, değerlendirmek için atabilirim. Harika sızıyor. Ama burada buna izin verilmiyor.
Örneğin, emirleri hemen türlere ayırabilirsiniz: Buy, Sell, BuyStop, SellStop, BuyLimit, SellLimit. O zaman böyle dört diziye ihtiyacımız var. Ancak daha sonra, alım satım kararları verirken, tüm açık emirler listesini tekrar gözden geçirmeniz gerekmeyecektir. Belirli bir türdeki siparişlerin sayısını bulmak ve gerekli diziye başvurmak yeterlidir.
Tam olarak ihtiyacım olan şey bu, daha doğrusu sadece Al ve Sat için. Basit stratejim için asıl mesele, açık pozisyonların kapanma koşullarını görmek için birbirine müdahale etmemesidir. Belki hala diziler olmadan yapabilirsiniz? Şey, onları anlamıyorum: nasıl yaratılır, nasıl çevrilir - karanlık bir orman. Belki ekrandan benim durumumu anlarsın:
Görünüşe göre koddaki her şey basit ve net bir şekilde çalışıyor, sadece bu yanlış anlaşılmanın tek örneği.
Tam olarak ihtiyacım olan şey bu, daha doğrusu sadece Al ve Sat için. Basit stratejim için asıl mesele, açık pozisyonların kapanma koşullarını görmek için birbirine müdahale etmemesidir. Belki hala diziler olmadan yapabilirsiniz? Şey, onları anlamıyorum: nasıl yaratılır, nasıl çevrilir - karanlık bir orman. Belki ekrandan benim durumumu anlarsın:
Görünüşe göre koddaki her şey basit ve net bir şekilde çalışıyor, sadece bu yanlış anlaşılmanın tek örneği.
Tabii ki, diziler olmadan en basit (ve hatta orta karmaşıklıkta) daha uygundur. İşte o zaman yüzlerce siparişin kullanımına ulaşırsınız - o zaman ...
Ve günlüğün şunu yazması benim durumumun nedeni olamaz: 2018.01.25 20:22:12 2018_WPR14_AMarkets EURUSD,M5: OrderClose hatası 138 ve sonuna kadar tekrarlıyor
2018.01.26 16:38:12 2018_WPR14_AMarkets EURUSD,M5: Uyarı: Toplam siparişler = 3 ? Ekran görüntüsü, bu sürenin SATIŞ'ı kapatmak için iki koşulu kapsadığını gösteriyor.
Ve bir pozisyon açma sinyalleri, birkaç göstergenin bir kombinasyonu ile verilir ve birer birer kapatılır. Ve çok sık çalışmıyorlar: beş dakikalık seansta birkaç gün sessiz kalıyorlar. Örneğin, bu yılın 1 Şubat'ından itibaren. sadece 14 pozisyon çalıştı.
Ve günlüğün şunu yazması benim durumumun nedeni olamaz: 2018.01.25 20:22:12 2018_WPR14_AMarkets EURUSD,M5: OrderClose hatası 138 ve sonuna kadar tekrarlıyor
nasıl bir durum yaşadın Terminalin hataya neden olan günlüğe yazdığını mı söylüyorsunuz? ... ve 138 ne anlama geliyor? nereye bakacağını biliyor musun? Bunu nasıl başardınız - bu çok nadir bir hatadır. ekranda görebilecekleriniz savaşın yarısıdır. Bunu bir danışmana nasıl açıklayacağınız aşağıda açıklanmıştır? bir tür matematiksel koşul yazmanız gerekiyor - danışman ekrana bakmak yerine sayılarla çalışıyor
Terminalin hataya neden olan günlüğe yazdığını mı söylüyorsunuz? ... ve 138 ne anlama geliyor? nereye bakacağını biliyor musun?
Hayır, tarihin bu döneminde test cihazında sinyallerin doğru çalışmasına izin vermeyen bir arıza oluştuğunu söylemek istiyorum. Çünkü alıntılar günlerce süremez .
Hayır, tarihin bu döneminde test cihazında sinyallerin doğru çalışmasına izin vermeyen bir arıza oluştuğunu söylemek istiyorum. Çünkü alıntılar günlerce süremez.
Test cihazındaki alıntılar? ilk kez duyuyorum ... Test cihazı ideal - kayması bile yok
...bir şey göstergeyi zorluyor - trend yükseliyor. Satın alacağım ... ortaya çıktı ... yeterli olmasa da, TP'yi yukarı taşımak istedim - zaten işe yaradı ...
Bu yüzden danışmana, eğer öyleyse çıkın ve bir sonraki onay işaretine devam edin. Ve demoda deneyin