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

 
Artyom Trishkin # :

Kodunuzda, bir açık pozisyon ile diğeri karşı sinyalde açılmayacaktır. Yani ilk olarak bir sinyal geldiğinde karşı pozisyon olup olmadığını kontrol etmeniz ve kapatmanız gerekir.

Ancak, tekrar ediyorum - tüm bunlar, stratejileri geliştirme olasılığını büyük ölçüde sınırlar.

Emirlerin varlığına/yokluğuna bağlı olmaktan uzaklaşmak gerekir (özellikle dörtte - orada hem bekleyen emirler (doğru olan) hem de pozisyonlar (doğru olmayan) emir olarak alınır).

Hayır, türlerine göre emir ve pozisyon sayısının elinizin altında olması doğru ve gereklidir. Ancak herhangi bir emrin yokluğunda sadece sinyallere güvenmek böyle bir şey ...

Genel olarak, emir ve pozisyon sayma fonksiyonlarına (emir ve pozisyon sayısı değiştiğinde yapıyı dolduran bir fonksiyon), pozisyon açma/kapama fonksiyonlarına, emir verme fonksiyonlarına ve sinyal fonksiyonlarına sahip olmak doğrudur. Artı - pozisyon verilerini (açık veya kapalı) herhangi bir değerle karşılaştırabilmek.

Bu setten herhangi bir strateji yapabilirsiniz.

Artem, orada strateji, TP veya SL ile kapanana kadar piyasada bir sipariş sağlar.
 
MakarFX # :

senin kodun

(Bar açıldı ve sipariş yok)

sinyali kontrol etti - sinyal yok

... bir sonraki barı beklemek

Geçen seferkiyle aynı hatayı yaptın

not

Bu

bir sipariş açıldıktan sonra yürütülmelidir

Genel olarak, kodum başka bir şeye yönelikti. Sadece açılış fiyatlarında işlem gören bir robot için. Az önce kendimden aldım ve kullanıcı koduna kanunlara saygılı bir vatandaş ekledim ve yorumlara göre değiştirdim. Tüm nüanslar aynı anda dikkate alınamaz. Yalnızca robotun test edilmesi sırasında görünürler.

Ama bir tane var ama. Ve sen de her şeyi hesaba katmış görünüyorsun. Bir sinyal geldi, bSignalSell veya bSignalBuy işlevi, bir sipariş açmak için kuyruğa bir komut gönderdi ve doğru (ilk an) döndü. İkinci nokta ise henüz bir emir açılmamış olmasıdır (komut terminalde sırasını beklemektedir). Sıra takıma geldiğinde   takım elbise, sunucuya gönderilir (bu hala zaman). Sunucu üzerinde çalışır. Veya sunucu birkaç olası nedenden biri nedeniyle yürütmeyi reddediyor (daha fazla ayrıntı için belgelere bakın). Veya ulaşmadı (parazit, zayıf bağlantı ve diğer ağ hataları). Ve robotunuz bir sipariş açtığını düşünür ve barın açılış saatini günceller. Kusursuzca. Ancak bu sipariş, sonunda açık siparişler listesinde değildi. Böylece, listede 0 siparişiniz olduğunu ve robotun "düşündüğünü" hayal edin: her şey yolunda, pazara girdim. Sonuç olarak, tüm bar boyunca, başarısız bir girişten sonra bir sinyal vardır, ancak uzman bunu "görmez" ve hiçbir şey yapmaz. Böyle bir durum mümkün mü? Mümkün! Yani kodunuz da süper çalışmıyor. Daha iyi düşün. Ya da yasalara saygılı vatandaş düşünsün. Ve ne yazık ki şu anda yapamam. Çok ilginç bir proje üzerinde çalışıyorum. Ayrıca, iyi ve karlı bir ticaret sistemi için tüm mekanizmalara sahip doğru ve tam olarak çalışan bir Uzman Danışmanı oluşturmak mantıklıdır. Ve robotu test cihazına sürün ve bunun başka bir depozito süzgeci olduğundan emin olun, benim, hatta sizin seçeneğinizde bile. Burada önemli değil.

 
законопослушный гражданин # :

şimdi fark ettim

 bool bSignalBuy()
  {
   if (dMA > Open[ 1 ] && dMA < Close[ 1 ])   //Open[1] и Close[1]- цены открытия и закрытия каждого бара текущего графика.
       return ( true );

   return ( false );
  }
Open [ 1 ] и Close [ 1 ]

Dizin 1.

dMA = iMA ( Symbol (), 0 ,PeriodMA, MovingShift, MODE_SMA , PRICE_CLOSE , 0 );

MA'nız 0 indeksindeyken! Yani bar boyunca yürür ve Aç ve Kapat'ın ötesine geçebilir. Bu nedenle, MA'yı indeks 1 ile de yapmak daha iyidir.

dMA = iMA ( Symbol (), 0 ,PeriodMA, MovingShift, MODE_SMA , PRICE_CLOSE , 1 );

Daha sonra tüm sinyaller yalnızca oluşturulan çubukta alınacak ve robot açılış fiyatlarındaki sinyallerle ticaret sistemine tam olarak uyacaktır. Böylece robotun çubuğun açılma anını takip etmesi (bu kodu zaten ekledim) ve en yeni oluşturulan çubuktan girmesi yeterli olacaktır. Daha güvenilir olacaktır. Ve Makar'ın başlangıçtaki yanlış giriş algoritması nedeniyle yapmak zorunda kaldığı gibi, saptırmaya gerek kalmayacak.

 
Mihail Matkovskij # :

şimdi fark ettim

Dizin 1.

MA'nız 0 dizinindeyken! Yani, bar boyunca yürür ve Aç ve Kapat'ın ötesine geçebilir. Bu nedenle, MA'yı indeks 1 ile de yapmak daha iyidir.

Daha sonra tüm sinyaller yalnızca oluşturulan çubukta alınacak ve robot açılış fiyatlarındaki sinyallerle ticaret sistemine tam olarak uyacaktır.

Bu, sinyalin özüdür.

Mevcut MA, önceki mumun gövdesine girer ve bu mumun (UP / DN) sinyal olduğuna bağlı olarak.

 
MakarFX # :

Bu, sinyalin özüdür.

Mevcut MA, önceki mumun gövdesine girer ve bu mumun (UP / DN) sinyal olduğuna bağlı olarak.

Bu durumda MA, alt zaman diliminde indeks 1 ile alınmalıdır. O zaman sapkın olmaya gerek kalmayacak. Eski zaman diliminin Açılış ve Kapanışında, daha genç zaman diliminde birkaç (veya daha fazla) çubuk olacaktır. Zaman çerçevelerinin neden icat edildiğini biliyor musunuz? Değilse, Japon şamdanlarının ortaya çıkış tarihi ile bu konuyu incelemeye başlayın. Kısacası, mesele teknik analizi basitleştirmek. Ve dijital çağın gelişiyle birlikte, ticaret sistemlerinin ayrıklaştırılmasını da basitleştiriyor.

 
Mihail Matkovskij # :

Bu durumda MA, alt zaman diliminde indeks 1 ile alınmalıdır. O zaman sapkın olmaya gerek kalmayacak. Eski zaman diliminin Açılış ve Kapanışında, daha genç zaman diliminde birkaç (veya daha fazla) çubuk olacaktır. Zaman çerçevelerinin neden icat edildiğini biliyor musunuz? Değilse, Japon şamdanlarının ortaya çıkış tarihi ile bu konuyu incelemeye başlayın. Kısacası, mesele teknik analizi basitleştirmek. Ve dijital çağın gelişiyle birlikte, ticaret sistemlerinin ayrıklaştırılmasını da basitleştiriyor.

Bana neden kızdığını anlamıyorum. Kişi stratejisini gördüğü gibi yazar ve bu kişi ben değilim.

Az önce sorusunu yanıtladım: "Aynı çubukta birden fazla açıklık nasıl önlenir?"

Ben kendim ne çalışmam gerektiğini biliyorum ve bilmiyorsam da soruyorum. Şimdi kimseye bir şey sormadım.

 
MakarFX # :

Bana neden kızdığını anlamıyorum. Kişi stratejisini gördüğü gibi yazar ve bu kişi ben değilim.

Az önce sorusunu yanıtladım: "Aynı çubukta birden fazla açıklık nasıl önlenir?"

Ben kendim ne çalışmam gerektiğini biliyorum ve bilmiyorsam da soruyorum. Şimdi kimseye bir şey sormadım.

Garip. Ben sorunu çözmeye çalışıyorum ve sen bir hesaplaşmadan bahsediyorsun. Ben sadece programlamadan bahsediyorum. Bir şey seni incitirse, gücenme. 15 yıldır program yazıyorum. Sizce kodumun doğru çalışmadığını söylüyorsunuz. Ama ben gücenmiyorum, ama size her şeyin aslında otomatik ticaret sistemlerinde nasıl düzenlendiğini açıklamaya çalışıyorum. Sadece teknik nitelikte bir konuşma ortaya çıkıyor. Ve benimle bazı şikayetler hakkında konuşuyorsun   ... :)

 
Mihail Matkovskij # :

Garip. Ben sorunu çözmeye çalışıyorum ve sen bir hesaplaşmadan bahsediyorsun. Sadece programlama konusunda konuşuyorum. Bir şey seni incitirse, gücenme. 15 yıldır program yazıyorum. Sizce kodumun doğru çalışmadığını söylüyorsunuz. Ama ben gücenmiyorum, ama size her şeyin aslında otomatik ticaret sistemlerinde nasıl düzenlendiğini açıklamaya çalışıyorum. Sadece teknik nitelikte bir konuşma ortaya çıkıyor. Ve benimle bazı şikayetler hakkında konuşuyorsun   ... :)

Bu yüzden size kodunuzun neden yanlış olduğunu açıkladım (bu durumda) ve danışmanı yeniden yapmanız gerektiğini söylüyorsunuz)
 
Mihail Matkovskij # :

15 yıldır program yazıyorum.

Bir teklif var. Bana telgrafını kişisel olarak ver.

 
MakarFX # :
Bu yüzden size kodunuzun neden yanlış olduğunu açıkladım (bu durumda) ve danışmanı yeniden yapmanız gerektiğini söylüyorsunuz)

Bu durumda, saptırılmaması için yeniden yapılması gerekir. Çünkü eklediğim kod, daha önce de söylediğim gibi, sadece açık fiyatlarla sinyalleri olan bir robot için tasarlandı. Garip olduğunu düşündüm. Ve sonra sebebini buldum. Her şey baştan doğru yapılırsa, gelecekte özel bir sorun olmayacaktır. Bu nedenle, her zaman neden aranmalı ve etkisi ile mücadele edilmemelidir.