Yeni API MetaTrader 4 MEVCUTTUR - sayfa 6

 
yewnix :

ben burda bişey anlamadım..

Gün boyu Sipariş Gönderimleri yapabilirim..

Ancak OrderClose yaparken büyük bir sorun yaşıyorum ..


Bunlarla ilgili bir örnek verebilir misiniz?


Gerçekten onun .NET sarmalayıcı DLL'im olduğunu düşünmüyorum.

Merhaba yewnix!


<Program Files>\TradeZone\TZMT4API\Developer\Short_Sample_MQL4.zip adresine göz atabilirsiniz.


bu basit mql kodu, <orderproxy.mqh>'yi ekledikten sonra tüm açık siparişleri kapatın


   int hAccount = TZ_LogIn(Login, Password, Server, "", "", "", "");

   int Total    = TZ_OrdersTotal();


   for(i=0;i<Total;i++)

   {

      TZ_OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

      TZ_OrderClose(TZ_OrderTicket(), TZ_OrderLots(), TZ_OrderClosePrice(), 3);

   } 

Saygılarla.

 
TradeZone :

Merhaba yewnix!


C:\Arquivos de programas\TradeZone\TZMT4API\Developer\Short_Sample_MQL4.zip adresine göz atabilirsiniz.


bu basit mql kodu, <orderproxy.mqh>'yi ekledikten sonra tüm açık siparişleri kapatın


int hAccount = TZ_LogIn(Login, Password, Server, "", "", "", "");

int Total = TZ_OrdersTotal();


for(i=0;i<Total;i++)

{

TZ_OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

TZ_OrderClose(TZ_OrderTicket(), TZ_OrderLots(), TZ_OrderClosePrice(), 3);

}

Saygılarla.

Bunu C# ile yapmaya çalışıyorum.

İşlevlerinizi aldım ve .NET için bir dll sarmalayıcı yazdım

yani:


çift fiyat = MT4ApiNet.MarketInfo_MT4(h, "GBPUSD", (int)MT4ApiNet.MarketInfoType.MODE_ASK)

MT4ApiNet.OrderSend_MT4(h, "GBPUSD", (int)MT4ApiNet.OrderType.OP_BUY, 1, askprice, 3, (askprice - 0.0050), (askprice + 0.0050), "Programım", 100, 0);


Bu mükemmel çalışıyor. Bu sipariş mükemmel bir şekilde ortaya çıkıyor.

Şimdi.. MetaTrader'dan sipariş# alırsam (örneğin 1234'ü sipariş# olarak kullanarak)


MT4ApiNet.OrderClose_MT4(h, 1234, 1, MT4ApiNet.OrderClosePrice_MT4(h,1234), 20);


Bu siparişi iptal etmez...

Siparişler arasında dolaşıp MT4ApiNet.OrderGet_MT4 yapsam bile hala çalışmıyor

 

Bilginize.

OrderClose yaptıktan sonra, eğer son hatayı alırsam ..

MessageBox.Show(MT4ApiNet.ErrorDescription_MT4(MT4ApiNet.GetLastError_MT4(h)));


Bu dönüş Genel Erro



En azından delphi'de uygun bir OrderClose gösterebilir misiniz?

Delphi'de bile kodum kilitleniyor

 
TradeZone :

merhaba juso,


<Program Files>\TradeZone\TZMT4API\Developer\MetaTrader4 API.txt ne istediğinizi içerir.


Saygılarla.

Merhaba TradeZone


Hızlı yanıt için teşekkürler. C++ geliştirmesini en son 8 yıl önce yapıyordum ve o zamana kadar api'yi doğal olarak kullanabilmek için dll'nin *.h ve *.lib'ine sahip olmak gerekiyordu. *.h dosyanız varsa ve *.lib'iniz yoksa, işlem daha sıkıcı olsa da, işlev adresini dinamik olarak çözerek yine de yapabilirsiniz. Böylece *.lib hala eksik olsa da *.h dosyasını kendim oluşturabilirim. Olabilir, dll'den benim bilmediğim bir lib şeyi yaratmanın kolay bir yolu vardır.


Dikkatli ol

Juso

 

ticaret bölgesi,


Delphi uygulamasından gönderilen çalışan bir OrderClose_MT4 komutu örneği gönderebilir misiniz?

Daha önce de belirtildiği gibi, bu çalışmayı alamıyorum.


Teşekkürler!

 
çarpmak.. çarpmak..
 

Buna bir yanıt alamadığım için DLL'nizin gerçekte nasıl çalıştığını araştırmaya başladım.

Aslında oldukça iyi bir fikir.

Her biri farklı bir EA'ya bağlanan 10 grafik yükleyin.

Bu EA'lar, uzmanlar/dosyalar dizininde çalışır ve dosyalar oluşturur.

DLL, programlanmış uygulamanızdaki verileri göstermek için bu dosyaları tekrar okur.

EA, dosyaların (DLL çağrıları tarafından üretilen) olup olmadığını kontrol eder ve varsa işlemleri gerçekleştirir, ardından yanıt verilerini geri vermek için başka dosyalar oluşturur, ardından DLL tarafından oluşturulan dosyayı siler, böylece işlemin tamamlandığını veya başarısız olduğunu biliriz.


Yanılmıyorsam, Login_MT4 komutundan geri dönen Handle'ınız sadece rastgele oluşturulmuş dizin adının bir indeksidir. Bu şekilde, hangi terminal.exe işleminin kontrol edileceğini ve oluşturulan dosyalarınızı nereye yerleştireceğinizi bilirsiniz.


Bütün bunlarda yanılıyor olabilirim, sadece yaşadığım OrderClose sorununu düzeltmek istiyorum...


Ancak tekrar tekrar dosya oluşturmak yerine... Bellek Eşleme'yi kullanmanızı şiddetle tavsiye ederim (Çift Adı_Handle'a dayalı Bellek Haritası Oluştur / Aç)

Bu arada iyi iş çıkardın.. Bana OrderClose hakkında bilgi verebilirsin, böylece kendi EA'larımı ve Memory Map DLL arayüzünü kodlamam gerekmez.


İşte çocuklar, bu API üzerindeki analizim.


Şerefe!

 

Çocuklar,

Bunun gibi güzel çalışan ve test edilmiş bir entegrasyonum var (bu kod değil). Bir uzman aracılığıyla yapılır ve işlevselliği bir C++/ Managed C++ aracılığıyla bir .NET modülüne sunar. Sorunsuz işlem yönetimine izin verir, hataları bildirir, gerçek zamanlı fiyat teklifleri verir, vb. İletişim TCP aracılığıyladır, bu nedenle hızlı ve güvenilirdir.

Yeni bir açık kaynak ticaret platformunun bir parçası olarak tamamen ücretsiz açık kaynak olarak yayınlanacaktır (.NET tabanlı, veri almak veya siparişleri gerçekleştirmek için MT4'ü kullanabilir). Platformu kullanmayı veya entegrasyonun küçük bir bölümünü kullanmayı seçebilirsiniz - bu size kalmış.

İlgileniyorsan ellerini kaldır, sana daha fazla ayrıntı vereceğim. :)

Platformun birkaç gün içinde piyasaya sürülmesi planlanıyor (yaklaşık 15.Ekim).

 

eş2k,


Güzel, ya Bellek Eşleme yerine TCP kullanmayı düşündüm.

Koda bir bağlantı göndermek isterseniz, bakmaktan çekinmem.

Bu sana kalmış ama :)


Şerefe!

yewnix@gmail.com

 
hey, peer2k, bu çok güzel olurdu, lütfen bana detayları iletin, yuryrub@gmail.com.