MT5 için dilekler - sayfa 55

 
-Alexey- :

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.

Я за то чтобы в библиотеку включались универсальные вещи, которые устраивают всех (чтобы потом не пришлось переопределять функционал стандартных классов ).

Evet, bu çok önemli bir nokta.
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.
 
Valmars :
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İ

 
Valmars :
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.

 
-Alexey- :

Ö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.

Pek çok açıdan haklısın, gerçekten de geçerlilik için bir sürü parametreyi hesaplamak ve kontrol etmek gerekiyor. ve PositionOpen(...) kullanarak basitçe bir pozisyon açmak için hem hacmi hem de açılış fiyatını ve SL ve TP'sini belirtmeniz ve önce fonların yeterliliğini kontrol etmeniz ve tüm Bir pozisyon açarken hata almak istemiyorsanız, önce bunların alınması ve geçerliliği kontrol edilmelidir?
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?

 
Ve standart yöntemin sizin için her şeye karar vermesini nasıl istersiniz: darbenin hem sapması, hem fiyatı, hem de hacim ve duraklar?

Sapma ile standart yöntem tam da bunu yapar (benim için karar verir) - varsayılan olarak sınıf içinde ayarlanır. Onlar. bu isteğe bağlı bir parametredir ve PositionOpen'da mevcut değildir. Gerekirse, özel bir yöntem olan СTrade.deviation.... kullanılarak değişir, ancak - gerektiğinde ve her zaman belirtmiyorum. O konforlu. Aynısı, CTrade'de varsayılan olarak ayarlanan diğer bazı parametreler için de geçerlidir.

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.

PositionOpen'da bu böyle yapılır. Ancak dilerseniz isteğe bağlı parametreleri belirleyerek bunun olmamasını sağlayabilirsiniz. Bu, arama yaparken: dur ve al (fonksiyonun isteğe bağlı parametreleri), sapma yöntemini çağırmadan önce ayrı ayrı. Onlar. CTrade 1) böyle bir duruma karşı koruma, 2) uygun şekilde çerçevelenir. Kullanıcı bu yapının tamamını nasıl oluşturacağını düşünmez. İşte bundan bahsediyoruz. Tek şey, yayılma kontrolü olmamasıdır.
 

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.. :-)

 
St0nE :

Bundan bahsedilip bahsedilmediğini bilmiyorum, ancak MetaEditor'un kodun bazı bölümlerini daraltma yeteneğine sahip olmasını istiyorum ...

söylendi. artı işaretinizi buraya koyabilirsiniz https://www.mql5.com/ru/forum/2931
 
Teşekkürler... etiketlendi... :-)
 

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: Yer imleri

Belki bu öncelikli bir görev değildir ama işte kolaylık katacaktır...