"MQL5'e Giriş: Basit Uzman Danışman (EA) ve Özel Gösterge nasıl yazılır" makalesi için tartışma - sayfa 3

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
Soru 4: Makale aşağıdakileri belirtmektedir:
Peki request.tp yapı elemanına neden sıfır koyuyoruz? Çünkü bekleyen bir alış emrimiz varsa, request.tp=0, TP'nin her zaman mevcut Alış fiyatının altında olacağı anlamına gelir. Ve bana göre, böyle bir TP değerine sahip bir emir ya TP parametresinin yanlış belirtilen değeri nedeniyle reddedilmeli ya da sunucu böyle bir emri kabul ettikten sonra hemen mevcut Alış fiyatından gerçekleştirilmelidir.
Soru 5: Makale aşağıdakileri belirtmektedir:
MQL5 Referans Kılavuzunda ayrıca"SYMBOL_TRADE_STOPS_LEVEL , Stop emirlerini ayarlamak için mevcut kapanış fiyatından pip cinsinden Minimum marjdır" ifadesi yer almaktadır. Bana göründüğü kadarıyla, her iki durumda da eşitsizliğin yerine getirilmesi söz konusudur
O zaman neden Uzman Danışman kodu, minimum StopLevel girintisini aşmak için Alış (Satış) ve StopLoss arasındaki mesafeyi kontrol ediyor?
Böyle bir kontrol her durumda gerekli midir, yoksa belirli bir stratejinin uygulanmasının bir özelliği midir? Kısacası, minimum StopLevel marjının aşılıp aşılmadığını görmek için bekleyen bir emir verirken her zaman Alış (Satış) ve StopLoss arasındaki mesafeyi kontrol etmeli miyim?
Peki neden request.tp yapı elemanına sıfır koyuyoruz? Çünkü bekleyen bir alış emrimiz varsa, request.tp=0, TP'nin her zaman mevcut Alış fiyatının altında olacağı anlamına gelir. Ve bana göre, böyle bir TP değerine sahip bir emir ya TP parametresinin yanlış belirtilmiş bir değeri nedeniyle reddedilmeli ya da sunucu böyle bir emri kabul ettikten sonra hemen mevcut Alış fiyatından gerçekleştirilmelidir.
Kısacası, minimum StopLevel marjının aşılıp aşılmadığını görmek için bekleyen bir emir verirken her zaman Alış (Satış) ve StopLoss arasındaki mesafeyi kontrol etmeli miyim?
Piyasaya çok yakın emirlerle çalıştığınız durumlarda, minimum marj için bekleyen emirlerin SL/TP/Giriş fiyat seviyesini her zaman kontrol etmeniz gerekir.
Durdurma veya bekleyen emirlerle makul ve piyasadan uzak bir modda (onlarca ve yüzlerce puan) çalışıyorsanız, böyle bir kontrolü atlayabilirsiniz.
Piyasaya çok yakın emirler belirleyerek çalıştığınız durumlarda, minimum girinti için bekleyen emirlerin SL/TP/Giriş fiyatı seviyesini her zaman kontrol etmelisiniz.
Soru 5.1'i açıklığa kavuşturmak.
Uzman Danışmana bekleyen her emir için üç seviye hesaplatıyorum: Giriş fiyatı/SL/TP.
Giriş fiyatı seviyesinin mevcut piyasa fiyatına göre ne kadar yakın / uzak olacağı önceden bilinmediğinden, minimum marjla uyumluluk için Giriş fiyatı seviyesinin kontrol edilmesi herhangi bir soru ortaya çıkarmaz.
Ancak kalan iki SL/TP seviyesini hangi seviyeye göre kontrol etmeliyiz? SL/TP seviyelerini mevcut piyasa fiyatına göre kontrol etmek biraz mantıksızdır, çünkü Giriş fiyatı seviyesi mevcut piyasa fiyatından oldukça uzakta olabilir ve böyle bir kontrol tüm alaka düzeyini kaybeder. Bu nedenle, Uzman Danışman'da |Giriş fiyatı-TP(SL)|>SYMBOL_TRADE_STOPS_LEVEL koşulunu kontrol etmek için sağladım. Genel olarak, Uzman Danışman bu tür koşullarla iyi çalışır, ancak EA kodunu optimize etmeye başladığımda, sunucu tarafından bekleyen emir işleme açısından böyle bir kontrolün gerekli olup olmadığını merak ettim. Uzman Danışmanın kodu, bu koşulu kontrol etmekle aşırı yüklenmez (Uzman Danışmanın stratejisinin kendisi böyle bir kontrol gerektirmez).
Başka bir deyişle, üç Giriş fiyatı/SL/TP seviyesine sahip bekleyen emir, minimum marj için her zaman SL/TP seviyelerini kontrol etmeli mi? Ve eğer öyleyse, hangi seviyeye (fiyat) göre minimum marj için kontrol edilmeli mi?
Gönderimi düzenleme yeteneğinde bir eksiklik var. Bu yüzden buraya ekleyeceğim:
= Bekleyen her emir için Uzman Danışman üç seviyeyi bağımsız olarak hesaplar: Giriş fiyatı/SL/TP. "Piyasaya daha yakınbir bekleyen emir belirleme " amacı güdülmez. =
Bekleyen seviyedeki SL ve TP, Giriş fiyatından minimum seviyeden daha az olmayacak şekilde değerlendirilir.
MT4'te de aynı şekilde çalışır.
Bekleyen seviyedeki SL ve TP, Giriş fiyatından en az minimum seviye uzakta olacak şekilde değerlendirilir.
MT4'te de aynı şekilde çalışır.
Tamam, şimdi her şeyi anlıyorum. Yani, EA kodunu kolaylaştıramam; başlangıçta her şey makaleye uygun olarak yapıldı, yani doğru.
Ve MT4'e aşina değilim, bu yüzden bu tür sorular "bir kukladan". Teşekkür ederim!
...Piyasaya çok yakın emirlerin belirlenmesi ile ilgili çalışmaların olduğu durumlarda, minimum girinti için bekleyen emirlerin SL/TP/Giriş fiyatı seviyesini her zaman kontrol edin.
...Bekleyen seviyedeki SL ve TP, Giriş fiyatından minimum seviyeden daha az olmayacak şekilde tahmin edilir.
Soru 6: Bekleyen emirler verilirken minimum girintinin kontrol edilmesi açıktır. Şimdi, açık bir pozisyonun TP/SL'sini değiştirirken minimum marjı kontrol etmenin özellikleri hakkında bir sorumuz var.
Durum: Açık bir pozisyonun sabit bir TP'si ve fiyat uygun bir yönde hareket ettikçe sabit TP'ye yaklaşan bir "yukarı çekme" SL'si vardır. Bekleyen bir emir belirlemeye benzer şekilde, Uzman Danışman açık bir pozisyonun TP / SL'sini değiştirmek için her emir gönderdiğinde, hem TP hem de SL seviyelerine göre minimum girintiyi kontrol eder.
Ancak CTrade sınıfındaki PositionModify işlevinin açıklamasında , tp parametresinin "Kâr Al'ın tetikleneceği yeni fiyat (veya değişiklik gerekli değilse önceki değer)" olduğu belirtilmiştir.
Buna göre, soru şudur: önceden ayarlanmış TP seviyesinde bir değişiklik gerekli değilse, açık bir pozisyonun TP/SL'sini değiştirmek için bir emir gönderirken, bu TP seviyesinin minimum marjını mevcut (gerçek) fiyattan kontrol etmek gerekli midir? Ya da böyle bir durumda minimum marjı yalnızca değiştirilen SL ile ilgili olarak kontrol etmek yeterli midir?
Başka bir deyişle, açık bir pozisyonun TP/SL'sini değiştirmek için bir emir gönderirken, bu TP seviyesi daha önce belirlenmişse ve değişikliğe tabi değilse, TP ile ilgili minimum marjı kontrol etmemek mümkün müdür? Ve değişiklik emrinde sadece önceki TP değerini belirtmek mi?
"indicator_TP_en.mql5" dosyasını indirdikten sonra, lütfen "indicator_TP.mql5" olarak yeniden adlandırın.