İşlemler hakkında bilgi nasıl toplanır ve kullanılır? Danışmanın tüm pozisyonları, hacimleri, karı, türü, açılış fiyatı hakkında bilgi toplamam gerekiyor. Ardından en son konum veya en büyük konum hakkındaki bilgilere dönün. Dizilere yazarken sorun yaşıyorum.
1. Dizilerle hiç uğraşmama gerek var mı?
2. Bir dizi yapı mı yoksa farklı diziler mi kullanmak daha iyidir?
3. Hala bir kenar boşluğu ile bellek ayırmanız gerekiyorsa neden dinamik bir diziye ihtiyacımız var? Statik bir dizi kullanmak daha kolay değil mi? Yoksa dinamik olmadan yapmak imkansız mı, çünkü ters indeksleme ile olabilir mi?
OOP'siz kod örneği, çünkü nedense bu yapıyı yazamadım bile, eğer zorlaştırmıyorsa, teşekkürler.
Neden bir şey toplasın? Konumlar arasında dolaşmanız ve bilgileri işlemeniz gerekir - ancak bunları toplamanız gerekmez. Aynı anda topladığınız her şey eski bilgilerdir.
1. Ticaret tarihi ile çalışırken, dizilerden genellikle vazgeçilir. Yaklaşık olarak örnekteki gibi: https://www.mql5.com/ru/docs/trading/historyselect . Bağlantının solundaki sütundaki tüm işlevleri (ve orada bulunan tüm örnekleri) keşfetmeye değer.
2. Bir dizi yapı çok uygundur. Ancak çok boyutlu dizilere uygulanabilen yerleşik işlevler - ArraySort(), vb. onunla çalışmaz.
3. Başlangıçta belirtilen dizi boyutunun yeterli olduğundan eminseniz, statik olanları da kullanabilirsiniz. Boyutları makul ise.
Neden bir şey toplasın? Konumlar arasında dolaşmanız ve bilgileri işlemeniz gerekir - ancak bunları toplamanız gerekmez. Aynı anda topladığınız her şey eski bilgilerdir.
int OnInit () { ENUM_POSITIONS_TYPE ar [ 1000 ]; //проинициализирую нулем еще, просто я не копирую, а вручную всё пишу, и некоторые очевидные куски не пишу. return ( INIT_SUCCEEDED ); } void OnDeinit ( const int reason) {} void OnTick () { for ( int index= PositionsTotal ()- 1 ; index>= 0 ; index--) { ulong ticket= PositionGetTicket (index); PositionSelectByTicket (ticket); // И вот я готов вызывать функции для выуживания данных, только я не знаю //как их вписывать в массив.
1. Ticaret tarihi ile çalışırken, dizilerden genellikle vazgeçilir. Yaklaşık olarak örnekteki gibi: https://www.mql5.com/ru/docs/trading/historyselect . Bağlantının solundaki sütundaki tüm işlevleri (ve orada bulunan tüm örnekleri) keşfetmeye değer.
2. Bir dizi yapı çok uygundur. Ancak çok boyutlu dizilere uygulanabilen yerleşik işlevler - ArraySort(), vb. onunla çalışmaz.
3. Başlangıçta belirtilen dizi boyutunun yeterli olduğundan eminseniz, statik olanları da kullanabilirsiniz. Boyutları makul ise.
Tarihten bahsetmiyorum, açık pozisyonları analiz etmek istiyorum. Nasıl daha iyi yapılır?
Hemen hemen aynı, ancak HistorySelect() olmadan. PositionsToatal() işleviyle başlıyoruz ve ardından Position ile başlayan tüm işlevleri incelemek için bu bağlantıyı takip ediyoruz.
Burada oop olmadan bir ızgara yazıyorum. Açık pozisyonlardan hangisinin en büyük olduğunu ve ne tür işlemler olduğunu bulmam gerekiyor, satın al veya otur. Anladığım kadarıyla bir döngüdeki her pozisyondan veri toplamak, bir diziye yazmak, ardından diziyi analiz etmek veya ters indeksleme ile dinamik ise en son elemanı almak gerekiyor.
Dizideki konumları sıralamak ve yol boyunca maksimum ve minimumu aramak gerekli değildir.
Dizideki konumları sıralamak ve yol boyunca maksimum ve minimumu aramak gerekli değildir.
Teşekkür ederim. Sadece kısa bir örnek verebilir misiniz? Karşılaştırmak için yazmamız gerekiyor mu? Ve bir dizide olmadığı gibi nereye yazmak için? Kayıt olmadan nasıl yapacağımı bulamıyorum. Daha sonra iş, döngü geçişinde bir konumla devam eder, başka bir döngü geçişindeyse başka bir konumu nasıl karşılaştırabiliriz?
Teşekkür ederim. Sadece kısa bir örnek verebilir misiniz? Karşılaştırmak için yazmamız gerekiyor mu? Ve bir dizide olmadığı gibi nereye yazmak için? Kayıt olmadan nasıl yapacağımı bulamıyorum. Daha sonra iş, döngü geçişinde bir konumla devam eder, başka bir döngü geçişindeyse başka bir konumu nasıl karşılaştırabiliriz?
int Magic= 123 ; double maxBuyPrice= 0 ; ulong maxBuyTicket= 0 ; double minSellPrice= DBL_MAX ; ulong minSellTicket= 0 ; for ( int i= 0 ;i< PositionsTotal ();i++){ ulong ticket= PositionGetTicket (i); if (ticket!= 0 ){ long magic= PositionGetInteger ( POSITION_MAGIC ); string symbol= PositionGetString ( POSITION_SYMBOL ); if (magic==Magic && symbol== Symbol ()){ long type= PositionGetInteger ( POSITION_TYPE ); if (type== POSITION_TYPE_BUY ){ if ( PositionGetDouble ( POSITION_PRICE_OPEN )>maxBuyPrice){ maxBuyPrice= PositionGetDouble ( POSITION_PRICE_OPEN ); maxBuyTicket=ticket; // тут можно и другие данные позиции запоминать в переменные } } else if (type== POSITION_TYPE_SELL ){ if ( PositionGetDouble ( POSITION_PRICE_OPEN )<minSellPrice){ minSellPrice= PositionGetDouble ( POSITION_PRICE_OPEN ); minSellTicket=ticket; // и тут } } } } } if (maxBuyTicket!= 0 ){ } if (minSellTicket!= 0 ){ }
Böyle bir örnek için teşekkürler.
long magic= PositionGetInteger ( POSITION_MAGIC ); string symbol= PositionGetString ( POSITION_SYMBOL ); if (magic==Magic && symbol== Symbol ())
Her şeyi bu şekilde düzenlemeyi ve xs gibi yazmamayı tercih eden tek kişinin ben olduğumu sanıyordum.
if ( PositionGetInteger ( POSITION_MAGIC )==Magic && PositionGetString ( POSITION_SYMBOL )== Symbol ())
xs - Rusçaya çevrilmiş “Bilmek istiyorum” ... kötü düşünme ...
not; Bu, programda hata ayıklarken mümkün olan her şeyi izlemeye yardımcı olur.
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
İşlemler hakkında bilgi nasıl toplanır ve kullanılır? Danışmanın tüm pozisyonları, hacimleri, karı, türü, açılış fiyatı hakkında bilgi toplamam gerekiyor. Ardından en son konum veya en büyük konum hakkındaki bilgilere dönün. Dizilere yazarken sorun yaşıyorum.
1. Dizilerle hiç uğraşmama gerek var mı?
2. Bir dizi yapı mı yoksa farklı diziler mi kullanmak daha iyidir?
3. Hala bir kenar boşluğu ile bellek ayırmanız gerekiyorsa neden dinamik bir diziye ihtiyacımız var? Statik bir dizi kullanmak daha kolay değil mi? Yoksa dinamik olmadan yapmak imkansız mı, çünkü ters indeksleme ile olabilir mi?
OOP'siz kod örneği, çünkü nedense bu yapıyı yazamadım bile, eğer zorlaştırmıyorsa, teşekkürler.