Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 920

 

Merhaba

"Geçmiş verilerle başla" düğmesi etkin değil

Nedeni ne olabilir?

 
mukata :

Merhaba

"Geçmiş verilerle başla" düğmesi etkin değil

Nedeni ne olabilir?

Neye başla?
 
Vinin :
Parametrelerde hata mı yaptınız?
Hayır, parametrelerle ilgili her şey doğru. 0'dan 99'a geçişi kontrol ettim. 1'den 99'a kadar olan tüm değerler, göstergedeki okumaya açıkça karşılık geliyor, ancak 0'lık bir kaydırma değeri ile veriler göstergeyle eşleşmiyor. Nasıl alındıklarını ve benim hatam nedir anlayamıyorum.
 

Herkese yılın iyi zamanları :-)

Burada ne sorunla karşı karşıya kaldı. Bekleyen emirleri ortaya çıkaran bir fonksiyon vardır. Ancak bunları SADECE belirli bir fiyatta sipariş yoksa ifşa eder. Ancak, garip bir şekilde, sipariş aynı fiyattan yeniden sunulur. İşte sipariş veren bir fonksiyon.

 int fOrderOpenBuy( double PR1, double PTP){
bool chek1= false ;
   RefreshRates();
   double lts=fGetLotsSimple(OP_BUY);
       if (lts> 0 ){      
         if (!IsTradeContextBusy()){
             //double PR=Close[1]-(150*Point);
             double slts=ND(PR1- Point *StopLoss);
             if (StopLoss== 0 )slts= 0 ;
//проверка ордеров
     int   TotalOrders= OrdersTotal (); 
           for ( int i= 0 ; i<=TotalOrders; i++){
     
                 if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== true ){
                 
                     if    (PR1==OrderOpenPrice()){chek1= true ;}   
                 Print ( "Чек " +OrderOpenPrice()+ "  " +PR1);
                 }
           }  
         if (chek1== false ) {   int irv= OrderSend ( Symbol (),OP_BUYLIMIT,lts,PR1,Slippage,slts,PTP, NULL ,Magic_N, 0 ,CLR_NONE); }
               if (irv> 0 ){
                   PlaySound ( "ok" );
                   return (irv);
               }
               else {
                   PlaySound ( "timeout" );
                   Print ( "Error open BUY. " +fMyErDesc( GetLastError ())); 
                   return (- 1 );
               }
         }
         else {
             static int lt2= 0 ;
               if ( TimeCurrent ()>lt2+ 20 ){
                  lt2= TimeCurrent ();
                   Print ( "Need open buy. Trade Context Busy" );
               }            
             return (- 2 );
         }
      }
       else {
         static int lt3= 0 ;
             if ( TimeCurrent ()>lt3+ 20 ){
               lt3= TimeCurrent ();
               if (lts==- 1 ) Print ( "Need open buy. No money" );
               if (lts==- 2 ) Print ( "Need open buy. Wrong lots size" );                  
            }
         return (- 3 );                  
      }
}  

Ayrıca, aynı açık fiyatları yazdırır, ancak if (PR1==OrderOpenPrice()){chek1= true ;} satırı yürütülmek istemiyor. Nedenini biri cevaplayabilir mi????

 

Ve sonra zaten kekeledim ..... :-( fiyatlar aynı ve sipariş hala açılıyor .....

 
Değerli uzmanlar !!!!!Uzman Danışman, test cihazında her şey yolunda olmasına rağmen, demo ve gerçek üzerinde işlem yapmaz!

Lütfen bana sorunun ne olabileceğini söyle? Farklı göstergeleri vidalamaya çalıştım, hepsi çalışıyor, ancak yalnızca test cihazında!

Dosyalar:
 

Herkese iyi günler!

Lütfen bana söyle...

Burada, Yazdır işlevinin bir mesaj yazdırdığı iki koşulun bulunduğu bir kod parçası verilmiştir.

Sorun.

Print işlevi EACH TICK ÜZERİNE bir mesaj yazdırır, bunu yalnızca ilk tikte yazdırmam ve geri kalanında dinlenmem gerekiyor.

Lütfen ilk tıklamadan sonra nasıl durduracağımı söyle.

Teşekkür ederim.

if (Sipariş Seçimi(Ht-1,SELECT_BY_POS, MODE_HISTORY))

if (OrderType()==OP_SEL)

X1 = OrderProfit( );

if (Sipariş Seçimi(Ht-1,SELECT_BY_POS, MODE_HISTORY))

if (OrderType()==OP_SEL)

eğer(X1 < 0)

Yazdır ("DÜŞÜK", X1 );

 
solnce600 :

Herkese iyi günler!

Lütfen bana söyle...

Burada, Yazdır işlevinin bir mesaj yazdırdığı iki koşulun bulunduğu bir kod parçası verilmiştir.

Sorun.

Print işlevi HER TICK ÜZERİNE bir mesaj yazdırır, bunu yalnızca ilk tikte yazdırmam ve geri kalanında dinlenmem gerekiyor.

Lütfen ilk tıklamadan sonra nasıl durduracağımı söyle.

Teşekkür ederim.

if (Sipariş Seçimi(Ht-1,SELECT_BY_POS, MODE_HISTORY))

if (OrderType()==OP_SEL)

X1 = OrderProfit( );

if (Sipariş Seçimi(Ht-1,SELECT_BY_POS, MODE_HISTORY))

if (OrderType()==OP_SEL)

eğer(X1 < 0)

Yazdır ("DÜŞÜK", X1 );

Çubuk başına bir oran hakkında konuşuyorsak, o zaman kullanırım

if (b!=çubuklar){

b=barlar;

}

Buna göre parantez içinde yapılan hesaplama çubuk başına sadece bir defadır...

 
nikelodeon :

Çubuk başına bir oran hakkında konuşuyorsak, o zaman kullanırım

if (b!=çubuklar){

b=barlar;

}

Buna göre parantez içinde yapılan hesaplama çubuk başına sadece bir defadır...

Çok teşekkürler.

Bu benim için gerekli enf. ilk dakika çubuğunda ve yalnızca üzerinde görüntülenir.

Önerdiğiniz seçeneği denedim, ..... ama hem 2 hem de 3 ile ilgili bilgileri gösteriyor, vb... çünkü ikinci çubuk birinciye eşit değil ve üçüncü, ikinciye eşit değil, vb.

Bilgileri göstermem gerekiyor. bir kez ilk çubukta. Ve bir sonraki sipariş STOP tarafından kapatılana kadar , Yazdırma işlevi "dinlenmelidir".

 
solnce600 :

Çok teşekkürler.

Bilgiye ihtiyacım var. ilk dakika çubuğunda ve yalnızca üzerinde görüntülenir.

Önerdiğiniz seçeneği denedim, ..... ama hem 2 hem de 3 ile ilgili bilgileri gösteriyor, vb... çünkü ikinci çubuk birinciye eşit değil ve üçüncü, ikinciye eşit değil, vb.

Bilgileri göstermem gerekiyor. bir kez ilk çubukta. Ve bir sonraki sipariş STOP tarafından kapatılana kadar , Yazdırma işlevi "dinlenmelidir".

bir bayrak kullanmayı deneyin.

tip

bool flag=yanlış;

......

if (x1<0)&&(flag==false){Print();flag=true;}

Ardından baskı BİR KEZ görüntülenecektir.

Durdurma tetiklendikten sonra, bayrağı false olarak ayarlayın ve yazdırma yeniden yürütülecektir....

Neden: