MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 82
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
çabucak yaptın, sana son kârsız olanı verilecek, onunla ne yapacaksın ve kendin için hangi parametreleri düzelteceksin, sanırım çözeceksin
teşekkürler anladım..
Kâr aldıktan sonra lotun orijinal değerine dönmesini nasıl sağlayabilirim?
{
lot= 0.1
}
teşekkürler anladım..
Kâr aldıktan sonra lotun orijinal değerine dönmesini nasıl sağlayabilirim?
{
lot= 0.1
}
bir planım var
if (Sipariş Toplamı()==0)
{
orijinal lotla aç
}
başka
...
yani, sipariş yoksa, eski parti artık açılmayacak
Elbette her birini ezberleyebilirsiniz, ancak nasıl yapılacağını söylemiyorlar.Belirtilen eşiğe ulaşıldığında sayaç başlatılmalı ve başlangıç değerine sıfırlanmalıdır:
{
//---
int b_STOP,s_STOP,b= 0 ,s= 0 ;
for ( int i= 0 ; i< OrdersTotal (); i++)
{
if ( OrderSelect (i, SELECT_BY_POS )== true )
{
if ( OrderSymbol ()!= Symbol () || OrderMagicNumber ()!=Magic) continue ;
if ( OrderType ()== OP_BUY ) b++;
if ( OrderType ()== OP_SELL ) s++;
if ( OrderType ()== OP_BUYSTOP ) b_STOP++;
if ( OrderType ()== OP_SELLSTOP ) s_STOP++;
}
if ( OrderType ()== OP_BUY )
{
if (b>= 1 &&s== 1 ) //бай позиций больше или 1 и появилась SELL позиция
{
OrderClose ( OrderTicket (), OrderLots (), NormalizeDouble ( Bid , Digits ), 3 ,CLR_NONE);
CLOSEORDER( OP_SELL );
}
}
}
}
OrderProfit()<0 işlevinin neden çalışmadığını açıklayabilir misiniz?
{
if ( OrderSelect (q, SELECT_BY_POS , MODE_HISTORY ))
{
if ( OrderType ()< 2 && OrderMagicNumber ()==magic)
{
if ( OrderProfit ()< 0 )
{
if ( DayOfWeek ()== 1 )
{
day1++;
Print ( "Понедельник SL=" ,day1);
}
if ( DayOfWeek ()== 2 )
{
day2++;
Print ( "Вторник SL=" ,day2);
}
}
}
}
}
Haftanın gününe göre kaç durdurma kaybı görmek istiyorum
{
if ( OrderSelect (l, SELECT_BY_POS , MODE_HISTORY ))
{
if ( OrderProfit ()< 0 && OrderType ()< 2 )
{
oldticket= OrderTicket ();
}
if (oldticket>=ticket)
{
ticket=oldticket;
lot= OrderLots ()* 4 ;
}
if ( OrderProfit ()> 0 && OrderType ()< 2 )
{
lot= 0.01;
}
}
}
ve burada, anladığım kadarıyla, aynı nedenle çalışmıyor
OrderProfit()<0 işlevinin neden çalışmadığını açıklayabilir misiniz?
{
if ( OrderSelect (q, SELECT_BY_POS , MODE_HISTORY ))
{
if ( OrderType ()< 2 && OrderMagicNumber ()==magic)
{
if ( OrderProfit ()< 0 )
{
if ( DayOfWeek ()== 1 )
{
day1++;
Print ( "Понедельник SL=" ,day1);
}
if ( DayOfWeek ()== 2 )
{
day2++;
Print ( "Вторник SL=" ,day2);
}
}
}
}
}
Haftanın gününe göre kaç durdurma kaybı olduğunu görmek istiyorum
{
if ( OrderSelect (l, SELECT_BY_POS , MODE_HISTORY ))
{
if ( OrderProfit ()< 0 && OrderType ()< 2 )
{
oldticket= OrderTicket ();
}
if (oldticket>=ticket)
{
ticket=oldticket;
lot= OrderLots ()* 4 ;
}
if ( OrderProfit ()< 0 && OrderType ()< 2 )
{
lot= 0.01;
}
}
}
ve burada, anladığım kadarıyla, aynı nedenle çalışmıyor
Çünkü DayOfWeek(), sunucunun bilinen son saatinin haftanın gününün seri numarasını döndürür.
Ve siparişin kapatıldığı haftanın gününe ihtiyacınız var: TimeDayOfWeek(OrderCloseTime());
Çünkü DayOfWeek(), sunucunun bilinen son saatinin haftanın gününün seri numarasını döndürür.
Ve siparişin kapatıldığı haftanın gününe ihtiyacınız var: TimeDayOfWeek(OrderCloseTime());
ve sonuç aynıdır, sanki ( OrderProfit () < 0 ) yok sayılır ve döngü oluşur, değişkenler büyük değerlere sahiptir.
2017.01 . 19 00 : 42 : 47.883 2014.02 . 20 23 : 59 : 48 EURUSD,H1: Понедельник SL= 963666
2017.01 . 19 00 : 42 : 47.883 2014.02 . 20 23 : 59 : 48 EURUSD,H1: Вторник SL= 1430207
2017.01 . 19 00 : 42 : 47.883 2014.02 . 20 23 : 59 : 48 EURUSD,H1: Понедельник SL= 963665
ve lot ile döngü hakkında? Buraya yanlış kopyaladım, if işaretini düzelttim if ( OrderProfit ()> 0 && OrderType ()< 2 ), ancak bu özü değiştirmez, bu koşul olmadan döngü doğru çalışır. nedenmiş?
ve sonuç aynıdır, sanki ( OrderProfit () < 0 ) yok sayılır ve döngü oluşur, değişkenler büyük değerlere sahiptir.
2017.01 . 19 00 : 42 : 47.883 2014.02 . 20 23 : 59 : 48 EURUSD,H1: Понедельник SL= 963666
2017.01 . 19 00 : 42 : 47.883 2014.02 . 20 23 : 59 : 48 EURUSD,H1: Вторник SL= 1430207
2017.01 . 19 00 : 42 : 47.883 2014.02 . 20 23 : 59 : 48 EURUSD,H1: Понедельник SL= 963665
ve lot ile döngü hakkında? Buraya yanlış kopyaladım, if işaretini düzelttim if ( OrderProfit ()> 0 && OrderType ()< 2 ), ancak bu özü değiştirmez, bu koşul olmadan döngü doğru çalışır. nedenmiş?
1. gün ve 2. gün nerede ilan edildi?
1. gün ve 2. gün nerede ilan edildi?
Bir şekilde doğru olmadığından şüpheleniyorum, çalışmayan bir sipariş seçiyorum ( OrderProfit () < 0 ), hangi siparişe ihtiyacım olduğunu özellikle nasıl belirteceğim. Sonuncusu bir çekimle kapatıldığında ve orada başka kimse yokken neden bir siparişi atladığını anlamıyorum. belki tarihte bir şeyi farklı bir şekilde sıralamak gerekirse, bir döngü oluşturmanız gerekir mi?
{
if ( OrderSelect (w, SELECT_BY_POS , MODE_HISTORY ))
çünkü Expert Advisor'ların benzer koşullara sahip döngüleri vardır ve olması gerektiği gibi çalışırlar ancak OrdersTotal () 'a göre çalışırlar.
{
if ( OrderSelect (n, SELECT_BY_POS ))
{
if ( OrderMagicNumber ()==magic)
{
if ( OrderType ()> OP_SELL )
{
//---
int b_STOP,s_STOP,b= 0 ,s= 0 ;
for ( int i= 0 ; i< OrdersTotal (); i++)
{
if ( OrderSelect (i, SELECT_BY_POS )== true )
{
if ( OrderSymbol ()!= Symbol () || OrderMagicNumber ()!=Magic) continue ;
if ( OrderType ()== OP_BUY ) b++;
if ( OrderType ()== OP_SELL ) s++;
if ( OrderType ()== OP_BUYSTOP ) b_STOP++;
if ( OrderType ()== OP_SELLSTOP ) s_STOP++;
}
if ( OrderType ()== OP_BUY )
{
if (b>= 1 &&s== 1 ) //бай позиций больше или 1 и появилась SELL позиция
{
OrderClose ( OrderTicket (), OrderLots (), NormalizeDouble ( Bid , Digits ), 3 ,CLR_NONE);
CLOSEORDER( OP_SELL );
}
}
}
}
Bir döngü içinde bu sorun çözülmez. Bu döngüde, bir dizide silinmek üzere siparişlerin biletlerini saklayın, başka bir döngüde - biletlerle silin.
Ayrıca kaşlı ayraçlarla kafanız karışıyor, OrderSelect{} bloğunun sınırları dışındaki emirlerle çalışıyorsunuz, bu yanlış.