MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1584 1...157715781579158015811582158315841585158615871588158915901591...1953 Yeni yorum Alexey Viktorov 2021.08.12 08:57 #15831 Valeriy Yastremskiy : fark modülü. Modül olmadan sadece üst bölge duruma düşer. | OpenPrice - Teklif |> 10*_Puan açılış koşulu Bu nedenle, koşula göre gereklidir, Teklif OpenPrice'tan daha düşüktür ve modül yoktur. Aksi takdirde, Teklif OpenPrice'tan daha yüksekse doğru sonucu alırız. Tretyakov Rostyslav 2021.08.12 08:57 #15832 Valeriy Yastremskiy : fark modülü. Modül olmadan sadece üst bölge duruma düşer. | OpenPrice - Teklif |> 10*_Puan açılış koşulu pek anlamadım... lütfen yeni başlayanlar için daha erişilebilir hale getirebilir misiniz ...) Alexey Viktorov 2021.08.12 08:58 #15833 MakarFX : beni şaşırtıyorsun Nasıl? Tretyakov Rostyslav 2021.08.12 09:03 #15834 Alexey Viktorov : Nasıl? Alexey Viktorov : OpenPrice - Teklifin 10*_Puan'dan fazla olmaması gerektiği resimden görülebilir. ancak negatif dahil olmak üzere daha az olabilir Alexey Viktorov 2021.08.12 09:30 #15835 MakarFX : ancak negatif dahil olmak üzere daha az olabilir Evet… ve durum “&& > 0” ile ortaya çıkıyor Ve soru nedir? Aynen öyle mi yoksa bir şey için mi? Tretyakov Rostyslav 2021.08.12 09:46 #15836 Alexey Viktorov : Evet… ve durum “&& > 0” ile ortaya çıkıyor Ve soru nedir? Aynen öyle mi yoksa bir şey için mi? Şimdi piyasaya giriş anının bu tanımını kullanıyorum. if (Bid < OpenPrice && Bid > OpenPrice-Х* Point ) if (Ask > OpenPrice && Ask < OpenPrice+Х* Point ) Basitleştirmenin mümkün olabileceğini düşündüm законопослушный гражданин 2021.08.12 10:01 #15837 martin'den sorumlu bir kod parçasının optimize edilmesine yardımcı olun görev şu: - duraktan sonra Martin partiyi çarpar; - Çarpma sayısı OrdersClose fonksiyonu ile ayarlanabilir, belirtilen değere ulaşıldığında parti büyüklüğü başlangıç değerine sıfırlanır; - parti büyüklüğünün başlangıç değerine sıfırlanmaması, tersine sırayla azalması gerekir; örneğin OrdersClose=5, Martin=2, lot=0.01: dizimiz var: 0.01; 0.02; 0.04; 0.08; 0.16 (sıfırlama) 0.01; 0.01;,,,, ihtiyaç: 0.01; 0.02; 0.04; 0.08; 0.16 (sıfırlama) 0.16; 0.08; 0.04;.... 0.01. Sorunu kendim çözecek bilgiye sahip değilim. Çeşitli kombinasyonlar denedim ama istenilen etkiyi elde edemedim. double LOT() { int n= 0 ; double OL=dLots; for ( int j = OrdersHistoryTotal()- 1 ; j >= 0 ; j--) { if ( OrderSelect (j, SELECT_BY_POS,MODE_HISTORY)) { if (OrderSymbol() == Symbol () && OrderMagicNumber() == iMagic) { if (OrderProfit()< 0 ) { if (n== 0 ) OL= NormalizeDouble (OrderLots()*K_Martin,DigitsLot); n++; if (n>=OrdersClose) { Comment ( "1" ); return (dLots);} } else { if (n== 0 ) { Comment ( "2" ); return (dLots);} else { Comment ( "3" ); return (OL);} } } } } return (OL); } Forumu kirletmemek için herhangi [ARŞİV] Forumu kirletmemek için Kapanış pozisyonları. Göstergeye göre. Valeriy Yastremskiy 2021.08.12 10:08 #15838 MakarFX : Şimdi piyasaya giriş anının bu tanımını kullanıyorum. Basitleştirmenin mümkün olabileceğini düşündüm if (Bid < OpenPrice && Bid > OpenPrice-Х* Point ) if (Ask > OpenPrice && Ask < OpenPrice+Х* Point ) // цену в середину диапазона ставим OpenPriceS=OpenPrice-X* Point / 2 ; if(fabs(Bid-OpenPriceS)>Х* Point ){ .... } Ve Alexei haklı. Alexey Viktorov : Bu nedenle, duruma göre gereklidir, Teklif OpenPrice'tan daha düşüktür ve modül yoktur. Aksi takdirde, Teklif OpenPrice'tan daha yüksekse doğru sonucu alırız. düzeltildi) Evet bu doğru. Durum değişmedi. Alışılanın dışında. Şekilde ortadaki Teklifi düşürür))) Ama ikinci bir şart daha var, kayıtlar şart sayısı bakımından aynıdır. Tretyakov Rostyslav 2021.08.12 10:35 #15839 законопослушный гражданин : martin'den sorumlu bir kod parçasının optimize edilmesine yardımcı olun görev şu: - duraktan sonra Martin partiyi çarpar; - Çarpma sayısı OrdersClose fonksiyonu ile ayarlanabilir, belirtilen değere ulaşıldığında parti büyüklüğü başlangıç değerine sıfırlanır; - parti büyüklüğünün başlangıç değerine sıfırlanmaması, tersine sırayla azalması gerekir; örneğin OrdersClose=5, Martin=2, lot=0.01: dizimiz var: 0.01; 0.02; 0.04; 0.08; 0.16 (sıfırlama) 0.01; 0.01;,,,, ihtiyaç: 0.01; 0.02; 0.04; 0.08; 0.16 (sıfırlama) 0.16; 0.08; 0.04;.... 0.01. Sorunu kendim çözecek bilgiye sahip değilim. Çeşitli kombinasyonlar denedim ama istenilen etkiyi elde edemedim. //+------------------------------------------------------------------+ //| Расчет лота | //+------------------------------------------------------------------+ double Lots() { double L= 0 ; // если последняя закрытая сделка убыточная и лот равен стартовому // включаем Мартин if (GetInfoLastPos( 2 )< 0 &&GetInfoLastPos( 1 )==Lot) { Martin= true ; } // если последняя закрытая сделка убыточная и лот больше или равен максимальному // выключаем Мартин if (GetInfoLastPos( 2 )< 0 &&GetInfoLastPos( 1 )>=MaxMartinLot) { Martin= false ; } // если последняя закрытая сделка убыточная и Мартин включен, умножаем лот if (Martin== true ) { L= NormalizeDouble (GetInfoLastPos( 1 )*K_Martin,DigitsLot); } // если последняя закрытая сделка убыточная и Мартин выключен, делим лот if (Martin== false ) { L= NormalizeDouble (GetInfoLastPos( 1 )/K_Martin,DigitsLot); } if (L>MAXLOT) L = MAXLOT; if (L<MINLOT) L = MINLOT; return (L); } //+----------------------------------------------------------------------------+ //| Функция возвращает по символу и магику | //| 1 - размер лота последней закрытой позиции | //| 2 - размер профита с учетом комиссии и свопа последней закрытой позиции | //| 3 - время последней закрытой позиции | //+----------------------------------------------------------------------------+ double GetInfoLastPos( int a= 1 ) { datetime t= 0 ; double result= 0 ,l= 0 ,p= 0 ,f= 0 ; int i=OrdersHistoryTotal(); for ( int pos= 0 ; pos<i; pos++) { if ( OrderSelect (pos, SELECT_BY_POS, MODE_HISTORY)) { if (OrderSymbol()== _Symbol && OrderMagicNumber()==Magic) { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (t<OrderCloseTime()) {t=OrderCloseTime(); l=OrderLots(); p=OrderProfit()+OrderCommission()+OrderSwap();} } } } } if (a== 1 ) {result=l;} else if (a== 2 ) {result=p;} else if (a== 3 ) {result=( double )t;} else {result= 0 ;} return (result); } Tretyakov Rostyslav 2021.08.12 10:55 #15840 Valeriy Yastremskiy : Ve Alexei haklı. Evet bu doğru. Durum değişmedi. Alışılanın dışında. Şekilde ortadaki Teklifi düşürür))) Teşekkürler, ancak bu kodumu hiçbir şekilde basitleştirmiyor) 1...157715781579158015811582158315841585158615871588158915901591...1953 Yeni yorum
fark modülü. Modül olmadan sadece üst bölge duruma düşer. | OpenPrice - Teklif |> 10*_Puan açılış koşulu
Bu nedenle, koşula göre gereklidir, Teklif OpenPrice'tan daha düşüktür ve modül yoktur.
Aksi takdirde, Teklif OpenPrice'tan daha yüksekse doğru sonucu alırız.
fark modülü. Modül olmadan sadece üst bölge duruma düşer. | OpenPrice - Teklif |> 10*_Puan açılış koşulu
pek anlamadım...
lütfen yeni başlayanlar için daha erişilebilir hale getirebilir misiniz ...)
beni şaşırtıyorsun
Nasıl?
OpenPrice - Teklifin 10*_Puan'dan fazla olmaması gerektiği resimden görülebilir.
ancak negatif dahil olmak üzere daha az olabilir
ancak negatif dahil olmak üzere daha az olabilir
Evet… ve durum “&& > 0” ile ortaya çıkıyor
Ve soru nedir? Aynen öyle mi yoksa bir şey için mi?
Evet… ve durum “&& > 0” ile ortaya çıkıyor
Ve soru nedir? Aynen öyle mi yoksa bir şey için mi?
Şimdi piyasaya giriş anının bu tanımını kullanıyorum.
Basitleştirmenin mümkün olabileceğini düşündüm
martin'den sorumlu bir kod parçasının optimize edilmesine yardımcı olun
görev şu:
- duraktan sonra Martin partiyi çarpar;
- Çarpma sayısı OrdersClose fonksiyonu ile ayarlanabilir, belirtilen değere ulaşıldığında parti büyüklüğü başlangıç değerine sıfırlanır;
- parti büyüklüğünün başlangıç değerine sıfırlanmaması, tersine sırayla azalması gerekir;
örneğin OrdersClose=5, Martin=2, lot=0.01:
dizimiz var: 0.01; 0.02; 0.04; 0.08; 0.16 (sıfırlama) 0.01; 0.01;,,,,
ihtiyaç: 0.01; 0.02; 0.04; 0.08; 0.16 (sıfırlama) 0.16; 0.08; 0.04;.... 0.01.
Sorunu kendim çözecek bilgiye sahip değilim.
Çeşitli kombinasyonlar denedim ama istenilen etkiyi elde edemedim.
Şimdi piyasaya giriş anının bu tanımını kullanıyorum.
Basitleştirmenin mümkün olabileceğini düşündüm
Ve Alexei haklı.
Bu nedenle, duruma göre gereklidir, Teklif OpenPrice'tan daha düşüktür ve modül yoktur.
Aksi takdirde, Teklif OpenPrice'tan daha yüksekse doğru sonucu alırız.
düzeltildi)
Evet bu doğru. Durum değişmedi. Alışılanın dışında. Şekilde ortadaki Teklifi düşürür)))
Ama ikinci bir şart daha var, kayıtlar şart sayısı bakımından aynıdır.
martin'den sorumlu bir kod parçasının optimize edilmesine yardımcı olun
görev şu:
- duraktan sonra Martin partiyi çarpar;
- Çarpma sayısı OrdersClose fonksiyonu ile ayarlanabilir, belirtilen değere ulaşıldığında parti büyüklüğü başlangıç değerine sıfırlanır;
- parti büyüklüğünün başlangıç değerine sıfırlanmaması, tersine sırayla azalması gerekir;
örneğin OrdersClose=5, Martin=2, lot=0.01:
dizimiz var: 0.01; 0.02; 0.04; 0.08; 0.16 (sıfırlama) 0.01; 0.01;,,,,
ihtiyaç: 0.01; 0.02; 0.04; 0.08; 0.16 (sıfırlama) 0.16; 0.08; 0.04;.... 0.01.
Sorunu kendim çözecek bilgiye sahip değilim.
Çeşitli kombinasyonlar denedim ama istenilen etkiyi elde edemedim.
Ve Alexei haklı.
Evet bu doğru. Durum değişmedi. Alışılanın dışında. Şekilde ortadaki Teklifi düşürür)))
Teşekkürler, ancak bu kodumu hiçbir şekilde basitleştirmiyor)