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
Evrensellik hakkında konuşursak , pozisyon hacmini sadece zamanlarda değil, aynı zamanda partilerde de değiştirebilmek arzu edilir. Onlar. aşağı yukarı şöyle:
1) Belirli bir lot ile bir pozisyon açılır: PositionOpen(...,lot,....); /bu işlev kesindir ve değişmez, şimdi olduğu gibi kalır/
2) Konum hacmi değişir, örneğin artar:
a) PositionIncrease(..., 2, mode_lot_change,....) - pozisyon hacmini 2 lot arttırın; /partiler halinde değiştirmenin uygun olduğu durumlar için/
b) PositionIncrease(..., 2, mode_multiply_change,....) - pozisyon hacmini 2 kat arttırın; /zamanla değiştirmenin uygun olduğu durumlar için/
CTrade'in başvuru için bir dizi yöntemi vardır: " Pozisyonlarla işlemler ". Bir pozisyonun açılması, bir pozisyonun kapatılması, SL veya TP pozisyonunun değiştirilmesi var. Eklenmesi önerilir. Bir pozisyonun tersine çevrilmesi, açık pozisyonun yönünün tersine çevrilmesi için mevcut olandan daha büyük hacimli bir ters işlem yapmak anlamına gelir. Bir pozisyonu azaltmak, açık pozisyonun hacmini azaltmaktır. Büyütmek ise tam tersi.
Я за то чтобы в библиотеку включались универсальные вещи, которые устраивают всех (чтобы потом не пришлось переопределять функционал стандартных классов ).
PositionOpen(), CTrade sınıfının yalnızca bir pozisyon açmaya değil, aynı zamanda mevcut bir pozisyonun hacmini artırmaya (azaltmaya) veya tersine çevirmeye de izin veren evrensel bir yöntemidir. Sadece eklenecek konum yönünde uygun order_type ile, gerekli hacimle kesmek için ters yönde veya tersine çevirmek için zıt konum yönünde hacmi ikiye katlayın.
ben de bahsediyorum. Belki ve kesme veya çevirme için özel işlevler reçete etmek gerekir, ancak açıkçası CTrade'de değil ( standart kitaplıktan bahsediyorsak).
Diyelim ki, "uzman" sınıflarından herhangi biri hakkında konuşuyorsak, şahsen buna karşı bir şey söylemedim.
1. Geliştiriciler. lütfen kaldıraç 1:500'ü iade edin (tercihen 1:200), birkaç haftadır sizden böyle bir hediye bekliyorum.
2. Başka bir soru ilginç - Test cihazında 1:500 puanım varsa ve maksimum 1:100 varsa, test cihazı hangi parametreleri dikkate alacak?
ÇOK GEREKLİ
PositionOpen(), CTrade sınıfının yalnızca bir pozisyon açmaya değil, aynı zamanda mevcut bir pozisyonun hacmini artırmaya (azaltmaya) veya tersine çevirmeye de izin veren evrensel bir yöntemidir. Sadece eklenecek konum yönünde uygun order_type ile, gerekli hacimle kesmek için ters yönde veya tersine çevirmek için zıt konum yönünde hacmi ikiye katlayın.
Örneğin, hacmi 2 kat daha fazla olacak şekilde pozisyonu tersine çevirmek için ne yapılması gerektiğine bakalım.
1) Açık bir pozisyon olup olmadığını belirleyin.
2) Açık pozisyonun yönünü belirleyin.
3) Açık pozisyonun hacmini belirleyin.
4) 3 kat büyük hacimli ters bir pozisyon açmak için ne kadar paraya ihtiyacınız olduğunu belirleyin (veya önce aynı miktarla kapatın, ardından çift pozisyon açın).
5) Gerekli fonların mevcut olup olmadığını belirleyin.
6) Partinin minimum çokluğunu belirleyin
7) Çokluk açısından istenen hacme en yakın hacmi belirleyin.
8) Yeterli para olup olmadığını tekrar kontrol edin.
9) PositionModify'ı kullanarak SL ve TP'yi mevcut bir konumdan kaldırın.
10) İzin verilen fişi ayarlayın.
11) Karşı pozisyonu açın.
12) Flip'ten kaynaklanan açılış fiyatını belirleyin.
13) PositionModify ile yeni SL ve TP ayarlayın.
Yazarken birkaç kez hata yaptım.
Bu, on binlerce insanın hatalarla yeniden yazmak zorunda kaldığı bir kod parçasıdır. Neden, kütüphanede bir kez yapılabilirken?
Bu, herkesin türetilmiş bir sınıfın yeni bir yöntemi olarak doğru şekilde biçimlendiremeyeceği koddur. Geliştiriciler bunu doğru yapabilirse neden?
Rahat değil. Hazır bir PositionReverse işlevi ve bir satır kullanmak varken neden bir sürü kod yazasınız ki?
ben de bahsediyorum. Belki ve kesme veya çevirme için özel işlevler reçete etmek gerekir, ancak açıkçası CTrade'de değil ( standart kitaplıktan bahsediyorsak).
Ve sıradan bir kullanıcı için nerede kullanılabilir ve yardımda bulunur? CTrade'de neden olmasın (bu yöntemlerin sorun yaratmaması şartıyla)?
Sonuçta, PositionOpen olmadan bir anlaşma açabilirsiniz. Bu yöntem neden o zaman Ctrade'de tanıtıldı? Bu ambalajın kolaylık sağlamak için sunulduğunu düşünüyorum, çünkü Acemi bir kullanıcı için açık olmayan birçok noktayı hesaba katar.
Örneğin, hacmi 2 kat daha fazla olacak şekilde pozisyonu tersine çevirmek için ne yapılması gerektiğine bakalım.
1) Açık bir pozisyon olup olmadığını belirleyin.
3) Açık pozisyonun hacmini belirleyin.
4) 3 kat büyük hacimli ters bir pozisyon açmak için ne kadar paraya ihtiyacınız olduğunu belirleyin (veya önce aynı miktarla kapatın, ardından çift pozisyon açın).
5) Gerekli fonların mevcut olup olmadığını belirleyin.
6) Partinin minimum çokluğunu belirleyin
7) Çokluk açısından istenen hacme en yakın hacmi belirleyin.
8) Yeterli para olup olmadığını tekrar kontrol edin.
9) PositionModify'ı kullanarak SL ve TP'yi mevcut bir konumdan kaldırın.
10) İzin verilen fişi ayarlayın.
11) Karşı pozisyonu açın.
12) Flip'ten kaynaklanan açılış fiyatını belirleyin.
13) PositionModify ile yeni SL ve TP ayarlayın.
Yazarken birkaç kez hata yaptım.
Bu, on binlerce insanın hatalarla yeniden yazmak zorunda kaldığı bir kod parçasıdır. Neden, kütüphanede bir kez yapılabilirken?
Bu, herkesin türetilmiş bir sınıfın yeni bir yöntemi olarak doğru şekilde biçimlendiremeyeceği koddur. Geliştiriciler bunu doğru yapabilirse neden?
Rahat değil. Hazır bir PositionReverse işlevi ve bir satır kullanmak varken neden bir sürü kod yazasınız ki?
Ve sıradan bir kullanıcı için nerede kullanılabilir ve yardımda bulunur? CTrade'de neden olmasın (bu yöntemlerin sorun yaratmaması şartıyla)?
Sonuçta, PositionOpen olmadan bir anlaşma açabilirsiniz. Bu yöntem neden o zaman Ctrade'de tanıtıldı? Bu ambalajın kolaylık sağlamak için sunulduğunu düşünüyorum, çünkü Acemi bir kullanıcı için açık olmayan birçok noktayı hesaba katar.
Aynı şey devrim için de geçerli. Pekala, "Şu ve böyle bir semboldeki konumu tersine çevir" dediniz ve bu kadar ve 100 4 basamaklı puanla çevirdiniz.
üstünde ya da altında. Muhtemelen memnun kalmayacaksınız.
Ancak, argümanlarınızı sırayla ele alalım.
1) Açık bir pozisyon olup olmadığını belirleyin.
Pozisyonu tersine çevirmek için bir karar verilmeden önce bunun hala yapılması gerektiğini düşünüyorum.
2) Açık pozisyonun yönünü belirleyin.
Devrilmeye karar verirseniz, bunun da bir zorunluluk olduğunu düşünüyorum. Her durumda, pozisyon zaten seçilmişse, temeldir.
3) Açık pozisyonun hacmini belirleyin.
2. nokta ile aynı.
4) 3 kat büyük hacimli ters bir pozisyon açmak için ne kadar paraya ihtiyacınız olduğunu belirleyin (veya önce aynı miktarla kapatın, ardından çift pozisyon açın).Bir talep göndermeden önce fonların yeterliliğini kontrol etmek zorunludur.
5) Gerekli fonların mevcut olup olmadığını belirleyin.4. nokta ile birleştirin.
6) Partinin minimum çokluğunu belirleyin
Kesinlikle.
7) Çokluk açısından istenen hacme en yakın hacmi belirleyin.
Pozisyonlar açıyor musunuz? Bu nedenle, bu işlevselliğe zaten sahipsiniz. İstediğiniz işlevi çağırmanız yeterlidir.
8) Yeterli para olup olmadığını tekrar kontrol edin.
standart yöntem.
9) PositionModify'ı kullanarak SL ve TP'yi mevcut bir konumdan kaldırın.
Burada gerekli değildir.
10) İzin verilen fişi ayarlayın.
Kesinlikle. Ne kadar küçük olursa, giriş o kadar doğru olur, ancak daha fazla alıntı yapılır.
11) Zıt bir pozisyon açın
PositionOpen'ı burada kullanıyoruz.
12) Flip'ten kaynaklanan açılış fiyatını belirleyin.
Ayrıca ilkel. Sadece pozisyonu yeniden seçmeniz gerekiyor.
13) PositionModify ile yeni SL ve TP ayarlayın.
Eh, hemen hesaplayıp kurmadıysanız, şimdi yapabilirsiniz.
Bir yerde bir hata yaptıysanız veya bir şeyi unuttuysanız, geliştiriciler bununla ilgilenir, istek parametrelerinin geçerliliği önce OrderCheck(m_request,m_check_result) işlevi kullanılarak kontrol edilir ve bir hata durumunda istek gönderilmez. günlükte karşılık gelen mesajla sunucu.
Ve standart yöntemin sizin için her şeye karar vermesini nasıl istersiniz: darbenin hem sapması, hem fiyatı, hem de hacim ve duraklar?
Devrimin fiyatı, elbette, strateji veya kullanıcı tarafından belirlenir. Ama darbeden sonra kontrol edilmelidir çünkü. kayma ve yayılma var. Bu nedenle, önceden hesaplanan (ve fonksiyonda belirtilen) stop veya kar farklı olabilir. Fiyatı sadece bundan dolayı belirttim, yani. tersine çevirme fonksiyonunda yeni stop ve kar değerleri belirtilirse (eğer - o zaman doğrulama ve kurulum gerekli değildir). Algoritma basittir - çevirme işlevi tarafından otomatik olarak çözülür - katılımım olmadan. O konforlu.
Açık bir pozisyon varsa ve teklifin ilgili olduğu durum buysa, kontrol edilmeden yapılabilecek işlemler vardır. Örneğin:
- fonksiyonları (söz konusu) çağırırken satın alma veya satma belirtmeyin, çünkü program , işlemin yönünü ve geri alma, azaltma ve artış için otomatik olarak belirleyebilir. Hataları kontrol edecek bir şey yok. Çağrı fonksiyonunda eksi bir parametremiz var (al/sat olmadan). Uygun mu? Evet. Standart yöntem benim için karar verdi.
- pozisyon hacmi biliniyor, yani, kullanıcının isteğine göre, ters çevirme veya azaltma/arttırma işlevi, halihazırdaki ile ilgili olarak belirtilen mod için (lot veya kez) gerekli işlem hacmini hesaplayabilir. minimum lotun en yakın katı kullanılarak bilinen hacim. Bunlar tipik eylemlerdir ve bir kez programlanabilirler. Çoğunlukla onlardan bahsediyorum.
Doğruluk kontrollerine gelince - doğru bir şekilde fark ettiniz, görünüşe göre bunu kendiniz yapmanız gerekiyor.
Pekala, "Şu ve böyle bir semboldeki konumu tersine çevir" dediniz ve bu kadar ve 100 4 basamaklı puanla çevirdiniz.
Bundan bahsedildi mi bilmiyorum ama MetaEditor'un kodun bazı bölümlerini daraltma yeteneğine sahip olmasını istiyorum... Örneğin, parantezden parantezlere, for, fonksiyonlar vb.
Onlar. Visual Studio vb. gibi programlama ortamlarında nasıl uygulandığı. Çünkü bazen bir şey aramak için ekranın her tarafını kaydırmaktan yoruluyorsunuz..
Ve böylece kodun yalnızca çalıştığınız bölümlerini açık bıraktı ve gerisini daralttı ..
Teşekkürler.. :-)
Bundan bahsedilip bahsedilmediğini bilmiyorum, ancak MetaEditor'un kodun bazı bölümlerini daraltma yeteneğine sahip olmasını istiyorum ...
MetaQuotes Yazılım'ın International Business Times ile uzun vadeli bir ortaklık anlaşması imzaladığı konusuna baktım ve uzun zamandır ne sunmak istediğimi hatırladım:
1. "Haberler" sekmesinin içerik menüsüne "Okundu olarak işaretle" öğesini aynı anda seçilen birkaç habere uygulama yeteneği ile ekleyin (şimdi her haberi ayrı ayrı açmanız gerekir). Bu, "ilginç olmayan" haberleri atlamanıza ve yenilerinin ortaya çıkışını izlemenize olanak tanır.
2. MetaEditor'da olduğu gibi yeni okunmamış haber sayısını sekmede gösterin:
Belki bu öncelikli bir görev değildir ama işte kolaylık katacaktır...