Uzman Danışmanlar: Yatırımcılar için MQL5 Programlama - Kitaptan kaynak kodları. Bölüm 7 - sayfa 4
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
Merhaba @Stanislav Korotky, MQL5'te yeniyim. Websocket kullanımı için bir wss.zip dosyası yayınladığınızı gördüm. Nasıl kullanılır, bir demo veya öğrenebileceğim bir şey var mı? İçtenlikle teşekkür ederim!
Algotrading kitabında, işlemlerin ve sinyallerin kopyalanması için bir web hizmeti projesinin uygulanmasını (adım adım) açıklayan bölümde birkaç örnek bulabilirsiniz.
Algotrading kitabında, işlemlerin ve sinyallerin kopyalanması için bir web hizmeti projesinin uygulanmasını (adım adım) açıklayan bölümde birkaç örnek bulabilirsiniz.
Merhaba @StanislavKorotky
Ters yönde bekleyen bir emir ile kısmi pozisyon kapatma uygulamaya çalışıyorum.
örn:
MqlTradeRequestSync reqs(transaction.symbol);
reqs.closeby(target_position_ticket_id, transaction.order);
Yukarıdaki satırın işi halledebileceğine inanıyorum, ancak benim sorunum OnTradeTransaction -> TRADE_TRANSACTION_DEAL_ADD ( transaction.type) olay işleyicisi içinde `target_position_ticket_id`yi nasıl alacağımveya bekleyen emri bir şekilde hedef_position_ticket_id ile ilişkilendirerek bekleyen emir doldurulduğunda kapanması bekleniyor.
Bekleyen emri oluştururken bekleyen emir yorumuna 'target_position_ticket_id' eklemeyi denedimancak sorun şu ki, OnTradeTransaction -> TRADE_TRANSACTION_DEAL_ADD (transaction.type) içindeMqlTradeTransaction özniteliklerinde 'comment' olmadığı için yoruma erişemiyorum
Lütfen yardımınız için minnettar olacağım
Kitaptaki closeby(ticket1, ticket2) yöntemi, bir hedging hesabı kullandığınızı ve ticket1 ve ticket2 biletleriyle zaten 2 açık pozisyonunuz (alış ve satış) olduğunu varsayar. Sanırım, bekleyen emre karşı TRADE_ACTION_CLOSE_BY eylemini gerçekleştirmek (genel olarak) imkansızdır. Ancak hesabınız netleştirme modundaysa, ters yönde bekleyen bir emir verebileceğinizi ve tetiklendiğinde mevcut pozisyonu buna göre değiştireceğini düşünüyorum - bu onu kapatır veya kısmi kapatır, hatta tersine çevirir (yeni hacim eskisinden daha büyükse).
Websocket'lerde küçük yamalar (alakart ve toplu).
Bu özelliklerden biri, ekteki resimde görülebileceği gibi açıkça brokerlerden farklı olan Sembolün "Komisyonları" dır. Ancak, bu özelliğe programatik olarak erişemedim. Lütfen sembolün komisyonunu nasıl alabileceğim konusunda bana yardımcı olabilir misiniz?
Diğer taraftan, PositionFilter ile çalışırken, özellikle EA ilk kez yüklendiğinde veya yeniden derlendiğinde, bu mesaj günlükte sık sık gösteriliyor "Unresolved int value as enum: 8 for MonitorInterface<ENUM_POSITION_PROPERTY_INTEGER,ENUM_POSITION_PROPERTY_DOUBLE,ENUM_POSITION_PROPERTY_STRING>". Hala iyi çalışıyor ve hiçbir şeyi durdurmuyor
@StanislavKorotky Sürekli güncelleme için teşekkürler, lütfen çözmekte zorlandığım bir şey var. MT5 "Piyasa İzleme" üzerinde herhangi bir "Sembol" üzerine sağ tıklayabilir ve "Özellikler" üzerine tıklayarak programlı olarak yaptığım gibi tüm ilişkili özelliklerini görüntüleyebilirim.
Bu özelliklerden biri, ekteki resimde görülebileceği gibi açıkça brokerlerden farklı olan Sembolün "Komisyonları" dır. Ancak, bu özelliğe programatik olarak erişemedim. Lütfen sembolün komisyonunu nasıl alabileceğim konusunda bana yardımcı olabilir misiniz?
Ne yazık ki, terminalin varlıklarının tüm özelliklerine MQL5 aracılığıyla erişilemiyor.
Diğer taraftan, özellikle EA ilk kez yüklendiğinde veya yeniden derlendiğinde PositionFilter ile çalışırken bu mesaj genellikle günlükte görünür "Unresolved int value as enum: 8 for MonitorInterface<ENUM_POSITION_PROPERTY_INTEGER,ENUM_POSITION_PROPERTY_DOUBLE,ENUM_POSITION_PROPERTY_STRING>". Hala iyi çalışıyor ve hiçbir şeyi durdurmuyor
Bu sadece MQL5'in ilgili yerleşik numaralandırmasının normalde ardışık olarak atanan sabitlerde bir boşluğa sahip olmasından kaynaklanan bir uyarıdır. Bu boşluk, MQL5 sürekli değiştiği için oluşur ve bazı sabitler eski hale gelebilir ve daha sonra ortadan kaldırılabilir. Bu tür uyarıları önlemek için kaynak kodunu düzenleyebilirsiniz.
JSON kütüphanesinin güncellenmiş bir sürümünü ekliyorum - toyjson3.mqh - kitaptaki toyjson2. mqh ve toyjson.mqh 'nin yerine geçecek.
Bu sürüm büyük json dosyalarını işlemek için optimize edilmiştir. Basitlik adına, önceki sürümler ayrıştırma sırasında metin belirteci için StringSplit işlevini kullanır ve bu çağrı, parçalanma ve daha fazla veri akışı beklentisi nedeniyle dahili olarak gigabaytlarca yedek bellek isteyebilir. Ayrıştırma işleminden sonra serbest bırakılır, ancak MQL5 bellek yöneticisi çöpleri ertelenmiş bir şekilde serbest bıraktığı için bir süre saklı tutabilir.
Artık ayrıştırma sırasında kat kat daha az bellek kullanır.