[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 484

 
Ve eğer destekçilerde bir sorun var !!!
 
Dimka-novitsek :

Teşekkürler!! Normalleşmeye girdim ... Ve ne oluyor !!!!!! Sadece kafam yanıyor .. Okul geometrisinden daha kolay görünüyor



Evet, ASK ve BID için normalizasyon gerekli değildir, Uyku (Na1sn-5sn) gereklidir;
 

Anladım! Ve sorun ne! Şimdi formüle edeceğim... Herkese katılımları, yardımları için çok teşekkür ederim. Kendimden hiçbir şey anlamıyorum Yukarıdaki koda dikkat edin. şart var

 if (strela1<strela2&&SELL== 0 &&BUY!= 0
  ){ udalenie ();

If..ve if..ve Satın alma emri yoksa. Onlar sıfır değil. Ekran görüntüsünde de görebileceğiniz gibi, kod yeni çalışmaya başladı, satın alma emri yok! Kesinlikle hayır! Ve şart karşılandı, olmamasına rağmen!

Bu, uzmanlar penceresinde zzzzz baskı mesajları görülebilir. Bu arada, koşul yerine getirildiğinde, sipariş mükemmel bir şekilde verildi, yani verildi!

Durumu yanlış yazdığım ortaya çıktı ??

Tabii ki, aşağıdaki kod koşulu hemen patlar,

 if (strela1<strela2&&BUY== 0 &&SELL== 0 ){

bu şartlar altında çalışması gereken buydu!

Sorun ne!!??

Mantıksal koşulda yanlış olan nedir ???

İkisi aynı anda nasıl idam ediliyor??

 

Bakın anlamıyorum... Bu iki şart aynı anda karşılanıyor !! Sanırım ben koyunum.. Ama anlamıyorum. Bu saçma. Görünüşe göre if operatörünü nasıl yazacağımı unuttum!

lanet olsun tüm kodlar

 //+------------------------------------------------------------------+
//|                                                     советник.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"

#include <WinUser32.mqh>
   extern double   lot= 1 ;                          
   extern int taymfreym= 0 ;                           
   extern double   stoplos= 200 ;                          
   extern double   takeprofit= 500 ; 
   extern double   magicnumber= 350 ;                          


void BreakPoint(){ //if (!IsVisualMode()) return(0);
keybd_event( 19 , 0 , 0 , 0 );
Sleep ( 10 );
keybd_event( 19 , 0 , 2 , 0 );}

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   Print (   "  НачалоНачал " ); 
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int i;
int start()
  { Print (   "  Начало " ); 
//----
for ( int A= 0 ; A< 100 ; A++){
            
             double strela1 = iCustom ( NULL , taymfreym, "индикатор" , 2 , A);
             double strela2 = iCustom ( NULL , taymfreym, "индикатор" , 3 , A);
            
             int BUY= 0 ,SELL= 0 ; int ticket; 
             Print ( A,   "  strela1 " , strela1 , "    strela2  " , strela2 ); 
            
    
            
             for ( int i= 1 ; i<= OrdersTotal (); i++) {  
             if ( OrderSelect (i- 1 ,SELECT_BY_POS)==true) // Если есть следующий
        {                                       // Анализ ордеров:
         if ( OrderSymbol ()!= Symbol ( ) ) continue ;       // Не наш фин. инструм
         if ( OrderMagicNumber ( ) !=magicnumber) continue ;
         if ( OrderType ()== 0 ){ BUY++; ticket= OrderTicket ( ); Print ( "BUY++   " , BUY  , "  ticket " ,ticket);}
         if ( OrderType ()== 1 ) {SELL++;ticket= OrderTicket ( ); Print ( "SELL++   " , SELL  , "  ticket " ,ticket);}    } }
         
  
   if (strela1<strela2&&SELL== 0 &&BUY!= 0
  ){ udalenie ();
              
   OrderSend ( Symbol ( ), OP_BUY, lot, NormalizeDouble (Ask, Digits ), 3 * Point , NormalizeDouble ( Bid- (stoplos* Point ), Digits ),   NormalizeDouble ( Ask+( takeprofit* Point ), Digits ), NULL , magicnumber, 0 , CLR_NONE );           
       Print ( "strela1<strela2&&BUY==0&&SELL!=0 " , GetLastError ()); }
            
   if (strela1>strela2){ udalenie ();
                
   OrderSend ( Symbol ( ), OP_SELL, lot, NormalizeDouble ( Bid, Digits ), 3 * Point , NormalizeDouble ( Ask+ (stoplos* Point ), Digits ),   NormalizeDouble ( Ask-( takeprofit* Point ), Digits ), NULL , magicnumber, 0 , CLR_NONE ) ; 
         Print ( "strela1>strela2&&SELL==0&&BUY!=0 " , GetLastError ()); }
      
     if (strela1<strela2&&BUY== 0 &&SELL== 0 ){    
            
           OrderSend ( Symbol ( ), OP_BUY, lot, NormalizeDouble (Ask, Digits ), 3 * Point , NormalizeDouble ( Bid- (stoplos* Point ), Digits ),   NormalizeDouble ( Ask+( takeprofit* Point ), Digits ), NULL , magicnumber, 0 , CLR_NONE );  
             Print ( "strela1>strela2&&BUY==0&&SELL==0   " , GetLastError ()  , "  Ask " ,Ask, "   stoplos= NormalizeDouble( Bid- (stoplos*Point),Digits)  " ,
 NormalizeDouble ( Bid- (stoplos* Point ), Digits ), "    takeprofit= NormalizeDouble( Ask+( takeprofit*Point),Digits) " , NormalizeDouble ( Ask+( takeprofit* Point ), Digits )); }
           
   if (strela1>strela2&&BUY== 0 &&SELL== 0 ){  
   
             OrderSend ( Symbol ( ), OP_SELL, lot, NormalizeDouble ( Bid, Digits ), 3 * Point , NormalizeDouble ( Ask+ (stoplos* Point ), Digits ),   NormalizeDouble ( Ask-( takeprofit* Point ), Digits ), NULL , magicnumber, 0 , CLR_NONE ) ; 
             Print ( "strela1>strela2&& OP_SELL  " , GetLastError ()   , "  Bid " ,Bid, "    stoplos=   NormalizeDouble( Ask- (stoplos*Point),Digits)  " ,
 NormalizeDouble ( Ask- (stoplos* Point ), Digits ), "    takeprofit= NormalizeDouble( Bid+( takeprofit*Point),Digits) " , NormalizeDouble (Ask+( takeprofit* Point ), Digits ));
             Print ( "strela1>strela2&& OP_SELL   " , GetLastError ()  , " (stoplos*Point) " ,(stoplos* Point ), "   Point  " , Point , "   Digits  " , Digits ); }
               
    
   
   
     } Print (   "  Конец " ); BreakPoint();     
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+

void udalenie (){ int total = OrdersTotal ();
   for (i=total- 1 ;i>= 0 ;i--)
    {
     OrderSelect (i, SELECT_BY_POS);
   int type   = OrderType ();   bool result = false;
     switch (type)
          { 
           case OP_BUY       : result = OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( OrderSymbol (), MODE_BID), 3 * Point , CLR_NONE ); break ;
           case OP_SELL      : result = OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( OrderSymbol (), MODE_ASK), 3 * Point , CLR_NONE ); break ; 
          }
     if (!result)
      {
       int error =   GetLastError (); 
       string errorcomment = "Неудалось закрыть ордер №" + OrderTicket () + " " + Symbol () + " " + OrderType () + " " + error; 
       Print (errorcomment);
      }  
    }       
   }

Açıklama, böylece daha kolay olurdu. BUY++, SELL++ değişkenlerindeki siparişler için açık gerçek siparişler için ayrı ayrı ayarlayın.

Ayrıca bu değişkenler mantıksal koşullara katılır. Gerisi, bana öyle geliyor ki, kim bilmesine rağmen soru için önemli değil.

Genel olarak, baskılardan gördüğüm kadarıyla onları açıkça koruyor.

 
aedu :
Danışmanı "tek tıkla" çalışması için indirdim, Derlenmiş - hata yok, ancak köşedeki "yüz" dışında hiçbir şey göstermiyor.Yardım !!!!!!!!!!!!
İndirdiğiniz Expert Advisor, çalışması için belirli bir "McTrader_"+Symbol()+"_command.dat" dosyasına ihtiyaç duyuyor, anladığım kadarıyla Expert Advisor için komutlar içeren bir komut dosyası gibi . Onu kendisi yaratmaz. Bu nedenle, açıklama için geliştiriciyle iletişime geçin.
 
Dimka-novitsek :

Bakın anlamıyorum... Bu iki şart aynı anda karşılanıyor !! Sanırım ben koyunum.. Ama anlamıyorum. Bu saçma. Görünüşe göre if operatörünü nasıl yazacağımı unuttum!

lanet olsun tüm kodlar

Açıklama, böylece daha kolay olurdu. BUY++, SELL++ değişkenlerindeki siparişler için açık gerçek siparişler için ayrı ayrı ayarlayın.

Ayrıca bu değişkenler mantıksal koşullara katılır. Gerisi, bana öyle geliyor ki, kim bilmesine rağmen soru için önemli değil.

Genel olarak, baskılardan gördüğüm kadarıyla onları açıkça koruyor.

"gösterge" vermeyecek mi?

gerekli olmasa da

 

Ve Kazak yanlış yönetiliyor, neden bu kadar heyecanlandı?
 
Dimka-novitsek :

Bakın anlamıyorum... Bu iki şart aynı anda karşılanıyor !! Sanırım ben koyunum.. Ama anlamıyorum. Bu saçma. Görünüşe göre if operatörünü nasıl yazacağımı unuttum!

lanet olsun tüm kodlar

Açıklama, kolaylaştırmak için. BUY++, SELL++ değişkenlerinde açık gerçek siparişler ve siparişler için ayrı ayrı ayarlayın.

Ayrıca bu değişkenler mantıksal koşullara katılır. Gerisi, bana öyle geliyor ki, kim bilmesine rağmen soru için önemli değil.

Genel olarak, baskılardan gördüğüm kadarıyla onları açıkça koruyor.

Bir sürü mantıksal ve teknik hata. Emir açma mantığı izlenebilir değil (hayal gücümü kullanmak zorunda kaldım). KENDİNİZİ, beceriksiz kodunuzu ("düzelten"e kadar) seçerek VEYA başka birinin kodlarını öğrenmelisiniz. Kodunuzu sizin için yaptım. - sana yardımcı olacak mı???

PS Daha önce de söylediğim gibi, test cihazı için fiyatları normalleştirmeye gerek yok. Ancak bir ticaret emrini uygularken "Yanlış fiyat" hatası veren olası nedenlerden biri, 3 * Puanınız (int'e dönüştürüldüğünde) = 0 olan Kayma olabilir.

Dosyalar:
rcjipewc.mq4  6 kb
 
Teşekkürler!!!!!
 
san44es :

İnsanlar, söyle bana!

Arka plan zaman diliminin 5. çubuğunun Düşük fiyatlarını hesaplayan özel bir fonksiyon var, belirli bir zaman diliminin fiyatını nasıl hesaplamasını sağlayabilirim?

Ben Becereksizim