MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 25

 
Artyom Trishkin :
Eğilim çizgisi yerine bir grafik nesnesi değil, sanal bir çizgi oluşturun. Buna göre, değeri ObjectGetValueByShift ( "1" ,bar_seek) aracılığıyla değil, düz bir çizgi denklemi ile elde etmek.
teşekkürler! - Deneyeceğim)
 
Nikolay Gaylis :
teşekkürler! - Deneyeceğim)
Ne için değil...
 
Nikolay Gaylis :
teşekkürler! - Deneyeceğim)

Uzun zaman önce, mql4.com'da bir makale yazdım. Sadece sanal trend çizgileri ile çalışmayı ve bu sanal çizgilerin istenilen çubuğunda istenilen fiyat değerinin aranmasını detaylı olarak anlatmaktadır.

Kod tabanında bu makaleye dayalı bir gösterge var. İçinde, yeni mql4 kodunu zaten elden geçirdim.

 
Artyom Trishkin :
Muhtemelen böyle amaçlandı. Doğru, böyle bir kontrol yalnızca bekleyen siparişleri değil, aynı zamanda bir ticaret hesabıyla yapılan tüm işlemleri de hesaba katacaktır - bakiyenin yenilenmesi, para çekme, ikramiye vb. hesap işlemleri.
Nicholas Gaylis'in fotoğrafı.

Bu durum baykuşun sadece bekleyen emirlerle çalışmasına izin verir, böyle mi düşünülmüştü?

     if ( OrderSymbol () == Symbol () && OrderType ()< 2 )
           continue ;
Sipariş özellikleri

OrderSend() işlevi için işlem türü. Aşağıdaki değerlerden herhangi biri olabilir:

Devamlı
Anlam
Tanım
OP_BUY
0
Satın almak
OP_SELL
1
Satış
OP_BUYLIMIT
2
Bekleyen sipariş SATIN AL LIMIT
OP_SELLLIMIT
3
Bekleyen sipariş SATIŞ LİMİTİ
OP_BUYSTOP
4
Bekleyen sipariş SATIN AL DUR
OP_SELLSTOP
5
Bekleyen sipariş SATIŞ DURDUR


Hesaplama, bekleyen emirlerin sadece mevcut enstrüman için piyasa emirlerine dönüştürülmeden kabul edilmeyeceği şeklindedir. Mevcut enstrüman için son piyasa emrini (çok varsa) işledikten sonra, danışman grafikten çıkarılır (şimdi ilk emir tetiklendikten hemen sonra kaldırılır, ancak 1 emir varsa mevcut enstrüman ve diğeri, bunu hesaba katar) Yani, anlamak gerekir

bu neden oluyor ve dönüşü nereye koyacağız, böylece bir sonraki kapandıktan sonra, işlevi hemen count ++'dan sonraki koşullara gönderir ve yalnızca sonuncusu playound'u tetikledikten sonra. Finalde sonuncuyu belirlemek için Orderselect() koyuyorum (eğer emir kapanmış ve emir seçemiyorsak bu çizelgede yapacak bir şey yok)

 
trader781 :
Sipariş özellikleri

...


Hesaplama, bekleyen emirlerin sadece mevcut enstrüman için piyasa emirlerine dönüştürülmeden kabul edilmeyeceği şeklindedir. Mevcut enstrüman için son piyasa emrini (çok varsa) işledikten sonra, danışman grafikten çıkarılır (şimdi ilk emir tetiklendikten hemen sonra kaldırılır, ancak 1 emir varsa mevcut enstrüman ve diğeri, bunu hesaba katar) Yani, anlamak gerekir

bu neden oluyor ve dönüşü nereye koyacağız, böylece bir sonraki kapandıktan sonra, işlevi hemen count ++'dan sonraki koşullara gönderir ve yalnızca sonuncusu playound'u tetikledikten sonra. Finalde sonuncuyu belirlemek için Orderselect() koyuyorum (eğer emir kapanmış ve emir seçemiyorsak bu çizelgede yapacak bir şey yok)

if ( OrderSymbol () == Symbol () && OrderType ()< 2 )
           continue ;

Bu kod, tüm piyasa pozisyonları arasında geçiş yapar.

Sırada ne olduğunu bilmiyorum, ancak başka tür siparişler daha fazla işlenirse - 2 ve üzeri olanlar, o zaman bu tür işleme, tüm bekleyen sipariş türlerini ve 6 türü siparişleri - bir hesapla yapılan işlemleri hesaba katacaktır.

Tüm döngünün kodu nerede?

 
Artyom Trishkin :
if ( OrderSymbol () == Symbol () && OrderType ()< 2 )
           continue ;


Tüm döngünün kodu nerede?

Mesaj 236

bu bölüm yalnızca mevcut enstrüman için piyasa çizgilerini geçmelidir

 
trader781 :

Mesaj 236

bu bölüm yalnızca mevcut enstrüman için piyasa çizgilerini geçmelidir

Bu döngü genellikle aptalca boştur. Bunun hiçbir anlamı yok - sadece hesapta çok sayıda siparişin varlığında frenler.

Ve kodunuzu sıraya koyun - bu sadece okunamayan çöp, kod değil.

OnTick()'te neden çift kaşlı ayraçlara ihtiyacınız var? Bunun kutsal anlamı nedir?

 
Artyom Trishkin:

Ve kodunuzu sıraya koyun - bu sadece okunamayan çöp, kod değil.

Doğru anlayın. İstediğini yapabilseydim, burada oturuyor olmazdım. Bu nedenle, mevcut sorunla başa çıkmama yardım etmenizi rica ediyorum.

 
trader781 :
Artyom Trishkin:

Ve kodunuzu sıraya koyun - bu sadece okunamayan çöp, kod değil.

Doğru anlayın. İstediğini yapabilseydim, burada oturuyor olmazdım. Bu nedenle, mevcut sorunla başa çıkmama yardım etmenizi rica ediyorum.

Koddan boş satırları nasıl kaldıracağınızı biliyor musunuz? Bu herhangi bir özel beceri gerektiriyor mu?

Genel olarak, Ctrl+"," - styler tuş kombinasyonu vardır. Kötü olsa bile, ama yine de. Ardından, insanların ayak örtüsüne bakmasını önlemek için boş satırları koddan silebilirsiniz. Bu en basit iletişim kültürüdür.

Kodunuzu temizledikten sonra, sizin için daha okunabilir hale gelecektir, ayrıca mantığınızı anlaması gereken diğer kişilerden bahsetmiyorum bile. Bütün sürüler orada görünecek.

 
Artyom Trishkin :

Koddan boş satırları nasıl kaldıracağınızı biliyor musunuz? Bu herhangi bir özel beceri gerektiriyor mu?

Genel olarak, Ctrl+"," - styler tuş kombinasyonu vardır. Kötü olsa bile, ama yine de. Ardından, insanların ayak örtüsüne bakmasını önlemek için boş satırları koddan silebilirsiniz. Bu en basit iletişim kültürüdür.

Şimdi, kodunuzu taradıktan sonra, sizin için daha okunaklı hale gelecektir, mantığınızı anlaması gereken diğer kişilerden bahsetmiyorum bile. Bütün sürüler orada görünecek.

Şimdi, kodunuzu taradıktan sonra, sizin için daha okunaklı hale gelecektir, mantığınızı anlaması gereken diğer kişilerden bahsetmiyorum bile. Bütün sürüler orada görünecek.

tamam, bu daha mı iyi?
Dosyalar: