Fan sayfamıza katılın
CGoldSymbol - find the broker's gold and size the position correctly on it - MetaTrader 5 için kütüphane
- Görüntülemeler:
- 16
- Derecelendirme:
- Yayınlandı:
-
Bu koda dayalı bir robota veya göstergeye mi ihtiyacınız var? Freelance üzerinden sipariş edin Freelance'e git
Altın, brokerların neredeyse hiçbir konuda anlaşamadıkları bir enstrümandır. Sembolü XAUUSD, GOLD, XAUUSD.m, XAUUSDpro veya GOLD# olabilir. Bir kontrat 100 ons, 10 ons ya da bir ons içerebilir. Fiyat iki basamaklı ya da üç basamaklı olabilir. Lot büyüklüğünü sabit kodlanmış "100 ons, iki basamak" değerinden hesaplayan bir EA, bir sonraki brokerda sadece biraz yanlış sonuç vermez; hesabı boşaltacak yönde on kat yanlış sonuç verir.
Bu sınıf, varsayımda bulunmak yerine terminale danışır.
Algılama. Detect() işlevi, hesabın sunduğu her sembolü tarar ve isimlere puan verir; böylece XAUUSD, XAUUSD.m'ye üstün gelir, XAUUSD.m ise tam olmayan eşleşmelere üstün gelir; gümüş, platin ve paladyum ise doğrudan hariç tutulur — XAGUSD, altın aramasında asla üst sıralarda yer almamalıdır. Market Watch'ta zaten bulunan bir sembol küçük bir bonus alır. Brokeriniz alışılmadık bir şey kullanıyorsa, Attach("YOURNAME") komutu aramayı atlar.
Özellikler. ContractSize(), Digits(), Point(), TickSize(), TickValueLoss(), MinLot(), MaxLot(), LotStep(), StopsLevel() ve FreezeLevel() işlevleri, o sembol için doğrudan terminalden alınır.
Para. LossForDistance(lots, distance) işareti, aleyhinize olan bir hareketin hesap para biriminde ne kadara mal olacağını belirtir. LotForRisk(riskMoney, distance) ise bunun tersidir ve asıl önemli olan işlevdir: SYMBOL_TRADE_TICK_VALUE_LOSS aracılığıyla dönüştürür, böylece 10 ons'luk bir sözleşmede ve euro cinsinden bir hesapta doğru sonuç verir, ardından sonucu brokerın hacim adımına ve minimum ile maksimum değerlerine yuvarlar. En küçük hacim bile izin verdiğinizden daha fazla risk oluşturuyorsa, sessiz bir minimum lot yerine sıfır değerini döndürür — bu, çoğu pozisyon büyüklüğü hesaplama kodunun yukarı yuvarlama yaparak hata yaptığı bir durumdur.
Teşhis. Attach(), 100 olmayan bir sözleşme büyüklüğü, olağandışı sayıda basamak, terminalin sıfır olarak bildirdiği bir tik değeri ve sıfırdan farklı bir stop seviyesi için uyarılar toplar. PrintReport(), tüm spesifikasyonu uygulamalı bir örnekle birlikte yazdırır; bu, genellikle bir stratejinin iki farklı brokerda neden farklı davrandığını bulmanın en hızlı yoludur.
100 onsluk bir sözleşmeye, euro bakiyesine ve 1500 puanlık bir stop seviyesine sahip bir canlı hesapta, 10.000 EUR'nun %1'i 0,07 lot olarak hesaplanır ve bu da 90,42 EUR risk anlamına gelir. Aynı işlem, 10 ons'luk bir sözleşmede 0,70 lot, 1 ons'luk bir sözleşmede ise 7,00 lot verir. Aynı risk, aynı stop seviyesi, hacimde yüz kat fark — işte sabit kodlanmış bir sabitin yanlış yaptığı tam da budur.
Paket, altın sembolünü algılayan, raporu yazdıran ve bakiyenin belirli bir yüzdesini çeşitli stop mesafelerine göre lot büyüklüğüne dönüştüren GoldSymbolDemo.mq5 adlı bir komut dosyasını içerir. Kendi brokerınızın altınının gerçekte ne olduğunu görmek için bunu herhangi bir grafikte çalıştırın.
Bu sınıf hiçbir işlem açmaz ve hiçbir pozisyonu değiştirmez. Sadece soruları yanıtlar.

MetaQuotes Ltd tarafından İngilizceden çevrilmiştir.
Orijinal kod: https://www.mql5.com/en/code/77067
Trade Excursion Report: MFE and MAE of every closed trade, to CSV
Kapanan her işlem için, hesap özetinde yer almayan rakamları içeren bir CSV satırı dışa aktarır: işlemin gösterdiği en yüksek gerçekleşmemiş kâr (MFE), atlattığı en kötü gerçekleşmemiş zarar (MAE), MFE’nin ne kadarının fiilen elde edildiği, kaç çubuk boyunca sürdüğü ve ne kadar süreyle açık kaldığı. Trade Excursion göstergesiyle aynı ölçümler, grafikte gösterilmek yerine bir dosyaya yazılır; çünkü bu verilerle ilgili sorulması gereken sorular, bir grafiğin cevaplayamayacağı sorulardır: yakalama oranı giriş saatine bağlı mıdır? Erken kapattığım işlemler, en uzun süre tuttuklarım mı? Pazartesi günleri gerçekleşen zararlı işlemlerin MAE değeri, Cuma günlerinkinden farklı mı? CSV dosyası hazır olduğunda, bu soruların yanıtlarını bir pivot tablo ile kolayca elde edebilirsiniz. Çıktı, MQL5\Files dizininde başlık satırı ile birlikte noktalı virgülle ayrılmış haldedir; herhangi bir elektronik tabloda açılabilir. Ölçüm sınırı: sapmalar, seçilen zaman dilimindeki çubukların en yüksek ve en düşük değerlerinden elde edilir; çubuk içindeki yol bilinmemektedir. Çubuklar sütunu, her işlemin elde ettiği çözünürlüğü bildirir ve özet, tek çubuklu işlemleri ortalamak yerine ayrı ayrı sayar.
SessionReopenEA
CME’de altın için günlük bakım arası vardır. 11 yıllık bir örneklemdeki her takvim yılında, bu aradan sonraki ilk saatte fiyat, şansın açıklayabileceğinden daha fazla yükselirken, günün geri kalan saatlerinde fiyat sabit kalmaktadır. Her seans için tek bir işlem, volatiliteye göre ölçeklendirilmiş sunucu tarafında stop emri, ortalama alma veya grid stratejisi kullanılmamaktadır. Sonra maliyet modelimin yanlış olduğu ortaya çıktı. Gerçek fiyat verileriyle yapılan bir geriye dönük test, piyasanın yeniden açılışındaki gerçek gidiş-dönüş maliyetinin, araştırmamda hesapladığım 19 değil, yaklaşık 60 puan olduğunu gösterdi; M1 çubuk spread alanı, çubuk başına bir özet olduğundan, bu rakamı yaklaşık üç kat daha düşük gösteriyor. Düzeltilmiş maliyetle 11 yıllık verileri yeniden hesapladığımızda: +3,34 baz puan, t 7,40, %59,3 kazanç oranı -> +1,60 baz puan, t 3,42, %50,8 kazanç oranı Avantaj, orijinal gücünün yarısından az bir seviyede de olsa devam ediyor. İkinci rakam gerçek olanıdır. Ne olmadığı: yılda yaklaşık %3,3 getiri ve %4,6 düşüş oranı, yaklaşık dokuz yılda bir negatif sonuç. 0,01 lot ile bu, yılda ~130'dur — bu rakam pozisyon büyüklüğünü gösterir, stratejiyi değil.
OHLC Reality Check - at what stop distance does your backtest start lying?
Her M1 çubuğunda sanal bir parantezli işlem açar, bunu gerçek tik geçmişi üzerinde ilerletir ve çeşitli stop mesafeleri için 1 dakikalık OHLC modellemesinin işlemi ne sıklıkla ters yönde değerlendireceğini raporlar.
Broker Clock Auditor
Reads the server clock from the symbol's own H1 history. The forex and CME week closes at 17:00 New York, so the server time of every weekly close gives the server's UTC offset for that week. Over 60 weeks it flags irregular closes, dates every clock change and tests it against the US and European daylight saving calendars, cross-checks TimeTradeServer minus TimeGMT, and lists the server time of the London, New York, Tokyo and Sydney opens for the coming weeks. Writes every close to CSV. Read only: no trade function, no DLL, no network.