HERKESE YARDIM !!!

 

bir sorunla karşılaştı

 for ( int i = 0 ; i < OrdersTotal (); i++)
  {
    
     if (! OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) continue ;
     if (OrderSymbol() != Symbol ()) continue ;
     if (OrderMagicNumber() != MAGA) continue ; 
     if (OrderType() == OP_BUY)DS= 1 ;


seçici, açık bir sipariş varsa bir sipariş bulur, ancak açık bir sipariş yoksa nasıl tespit edilir? seçicide yine de son kapalı pozu gösterecek...
 
sllawa3 :

bir sorunla karşılaştı


seçici, açık bir sipariş varsa bir sipariş bulur, ancak açık bir sipariş yoksa nasıl tespit edilir? seçicide yine de son kapalı pozu gösterecek...
bayraklı
MODE_TRADES
"Seçici" kapalı pozisyonları hiç göstermez, sadece açık pozisyonları gösterir, eğer sıfır açık pozisyon varsa, koşul yanlış olacağından döngü başlamaz bile
 
Techno :
bayraklı
"Seçici" kapalı pozisyonları hiç göstermez, sadece açık pozisyonları gösterir, eğer sıfır açık pozisyon varsa, koşul yanlış olacağından döngü başlamaz bile

işte bu tam olarak ne başlamaz ve zaten kapalı olan son pozu kaydeder.. Ben de yazdım..seçme sırası üzerinden, açık bir pozun varlığını kontrol edebilirsiniz, ama yokluğu nasıl kontrol edebilirim?
 
sllawa3 :

aynen öyle başlamaz ve zaten kapalı son pozu kaydeder.. ben öyle yazdım..
bir şey anlaşılmaz bir şekilde yazılmış. Şimdi bile, "pozu kapalı tut" ne anlama geliyor? Konumları saymaktan bahsediyorsak, sadece tahmin edebileceğim gibi, o zaman tüm değişkenler ( sipariş sayısını saklamak için) start fonksiyonunun başında sıfıra sıfırlanmalıdır. Yani bu döngüden önce. Döngüden sonra boş kalırlarsa, konum yoktur.
 
konunun başında bir kod parçası .. eğer poz yoksa DS yeni bir sipariş görünene kadar =1 kalacak ... sipariş kapansa bile .. sadece seçim başlamayacak ... ne o zaman belli değil..
 
Techno :
bir şey anlaşılmaz bir şekilde yazılmış. Şimdi bile, "pozu kapalı tut" ne anlama geliyor? Eğer pozisyonları saymaktan bahsediyorsak, sadece tahmin edebileceğim gibi, başlatma fonksiyonunun başlangıcında tüm değişkenler (sipariş sayısını saklamak için) sıfıra sıfırlanmalıdır. Yani bu döngüden önce. Döngüden sonra boş kalırlarsa, konum yoktur.

DS başlangıçta döngüden önce int = 0 olarak yazılır
 
Techno :


yani döngü başlamadığında sıfırlanmaz ve pozisyon olmadığı için başlamaz.
 
sllawa3 :

DS başlangıçta döngüden önce int = 0 olarak yazılır
Ve, eğer kayıtlıysa ve 0 atanırsa, teoride hiçbir problem olamaz, aksi halde bire eşit nereden gelir. Başlatma işlevinde sıfır mı yoksa daha yüksek mi?
 
daha yüksek
 
sorun olmaz ama öyle.. kendin deneyip görebilirsin
 
Belki bu yüzden?
 DS=0;
for ( int i = 0 ; i < OrdersTotal (); i++)
  {
    if (DS==0) DS=-1;
     if (! OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) continue ;
     if (OrderSymbol() != Symbol ()) continue ;
     if (OrderMagicNumber() != MAGA) continue ; 
     if (OrderType() == OP_BUY)DS= 1 ;
}
if (DS==0) // поз никаких нет
if (DS==-1) // позы есть, но нету БАЙ
if (DS==1) // есть БАЙ