int OpenTradesOnThisCandle( ) { int işlem =0; for(int i=OrdersTotal()-1;i>=0;i--) // tüm emirleri ve pozisyonları tara... { OrderSelect(i, SELECT_BY_POS, MODE_HISTORY); (OrderMagicNumber() != MagicNumber) devam ederse; if ( OrderSymbol()==Symbol() ) { if (OrderOpenTime() > Time[0]) op++; if (OrderOpenTime() > Time[0]) op++; } } dönüş(op); }
2. OrderSelect()'in dönüşü ya doğru ya da yanlıştır, bu yüzden OrderSelect() yazmanın doğru yolu budur,
int OpenTradesOnThisCandle( )
{
int op = 0 ;
for ( int i = OrdersTotal () - 1 ;i >= 0 ; i-- ) // scan all orders and positions...
{
if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY) == true // if order select is true ...
&& OrderMagicNumber () != MagicNumber // ... and magic number is our magic number ...
&& OrderSymbol () == Symbol () ) // ... and symbol is chart symbol
{
if ( OrderOpenTime () > Time[ 0 ]) op++;
if ( OrderOpenTime () > Time[ 0 ]) op++;
}
}
return (op);
}
2. OrderSelect()'in dönüşü ya doğru ya da yanlıştır, bu yüzden OrderSelect() yazmanın doğru yolu budur,
:D
Gönderme koduyla ilgili ipucu için teşekkürler. Mantıklı. 2. noktaya gelince, o beni adım adım ilerletirken ve sürecini bozmak istemediğinden gülmeyi erteleyeceğim. Çok takdir edildi!
Gönderme koduyla ilgili ipucu için teşekkürler. Mantıklı. 2. noktaya gelince, o beni adım adım ilerletirken ve sürecini bozmak istemediğinden gülmeyi erteleyeceğim. Çok takdir edildi!
şimdilik basit tutacağız. onewithzacky, dönüş kodlarını kontrol etmenin iyi bir alışkanlık olduğu konusunda haklı.
if (OrderOpenTime() > Time[0]) op++; <<== bunun sadece bir kez orada olması gerekiyor. Öyleyse bir tane çıkar.
Yapılması gereken bir sonraki şey, bu kodu bulmak ve hemen aşağıda çoğaltmaktır.
megamix,
Hala oradaysanız, aradığınızı yapacak birkaç kod değişikliği önerebilirim. Hala ilgileniyorsanız bana bildirin.
Ardından hatasız olduğundan emin olmak için yeniden derleyin. Bunu aldığında bana haber ver, sonraki değişikliği yapıştırayım.Anladım ve başarıyla derlendi teşekkürler sn.
Anladım ve başarıyla derlendi teşekkürler sn.
tamam iyi.
Ardından, bunun gibi bir kod bloğu var
tüm bloğu kopyalayın, hemen arkasına yapıştırın ve OpenTradesOnThisCandle olarak yeniden adlandırın
Ardından, hatasız olduğundan emin olmak için yeniden derleyin.
Şimdi işe gidiyorum, o yüzden daha sonraya kadar benden haber almayacaksın. Takılırsanız değişiklikleri gönderin.
Bu bloğu kopyaladı ve yeniden adlandırdı, şimdi şöyle görünüyor:
int OpenTradesOnThisCandle( )
{ int işlem =0;
for(int i=OrdersTotal()-1;i>=0;i--) // tüm emirleri ve pozisyonları tara...
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
(OrderMagicNumber() != MagicNumber) devam ederse;
if ( OrderSymbol()==Symbol() )
{
if ( OrderType() == OP_BUY ) op++;
if ( OrderType() == OP_SELL ) op++;
}
}
dönüş(op);
}
Umarım doğru yapmışımdır sn. Derledim ve uyarı dışında hata almadım:
" OpenTradesOnThisCandle " işlevine atıfta bulunulmuyor ve exp dosyasından kaldırılacak
0 hata(lar), 1 uyarı(lar)
İyi. Mesaj sadece bir uyarıdır ve yakında kaybolacaktır.
Şimdi oluşturduğunuz yeni alt programda MODE_TRADES gördüğünüz satırı MODE_HISTORY olarak değiştirin.
Şimdi bu iki if ifadesini OrderType() ile değiştirin.
Buna sahip olduğunuzda (ve aynı uyarıyı alacaksınız), hatasız olduğundan emin olmak için derleyin.
Blok şimdi böyle görünüyor:
int OpenTradesOnThisCandle( )
{ int işlem =0;
for(int i=OrdersTotal()-1;i>=0;i--) // tüm emirleri ve pozisyonları tara...
{
OrderSelect(i, SELECT_BY_POS, MODE_HISTORY);
(OrderMagicNumber() != MagicNumber) devam ederse;
if ( OrderSymbol()==Symbol() )
{
if (OrderOpenTime() > Time[0]) op++;
if (OrderOpenTime() > Time[0]) op++;
}
}
dönüş(op);
}
Derlendi, 0 hata, 1 uyarı
Merhaba megamix,
Konuyu baştan okumadım ama...
1. Kod gönderirken SRC düğmesini kullanın
2. OrderSelect()'in dönüşü ya doğru ya da yanlıştır, bu yüzden OrderSelect() yazmanın doğru yolu budur,
:D
Merhaba megamix,
Konuyu baştan okumadım ama...
1. Kod gönderirken SRC düğmesini kullanın
2. OrderSelect()'in dönüşü ya doğru ya da yanlıştır, bu yüzden OrderSelect() yazmanın doğru yolu budur,
:D
Gönderme koduyla ilgili ipucu için teşekkürler. Mantıklı. 2. noktaya gelince, o beni adım adım ilerletirken ve sürecini bozmak istemediğinden gülmeyi erteleyeceğim. Çok takdir edildi!
Gönderme koduyla ilgili ipucu için teşekkürler. Mantıklı. 2. noktaya gelince, o beni adım adım ilerletirken ve sürecini bozmak istemediğinden gülmeyi erteleyeceğim. Çok takdir edildi!
şimdilik basit tutacağız. onewithzacky, dönüş kodlarını kontrol etmenin iyi bir alışkanlık olduğu konusunda haklı.
if (OrderOpenTime() > Time[0]) op++; <<== bunun sadece bir kez orada olması gerekiyor. Öyleyse bir tane çıkar.
Yapılması gereken bir sonraki şey, bu kodu bulmak ve hemen aşağıda çoğaltmaktır.
Sonra değiştir
(TradesInThisSymbol > 0)
ile
(OpenTradesOnThisCandle() > MaxTradesPerCandle)
Sonra derleyin - hata giderilmelidir.
şimdilik basit tutacağız. onewithzacky, dönüş kodlarını kontrol etmenin iyi bir alışkanlık olduğu konusunda haklı.
if (OrderOpenTime() > Time[0]) op++; <<== bunun sadece bir kez orada olması gerekiyor. Öyleyse bir tane çıkar.
Yapılması gereken bir sonraki şey, bu kodu bulmak ve hemen aşağıda çoğaltmak.
Sonra değiştir
(TradesInThisSymbol > 0)
ile
(OpenTradesOnThisCandle() > MaxTradesPerCandle)
Sonra derleyin - hata giderilmelidir.
Tamamlandı.
Silinen kopya if (OrderOpenTime() > Time[0]) op++;
ve bulundu ve değişti
(TradesInThisSymbol > 0)
ile
(OpenTradesOnThisCandle() > MaxTradesPerCandle)
Bu konudaki yardımcı yardımlarınız için çok teşekkürler.