Hatalar, hatalar, sorular - sayfa 256

 

Lütfen bana 2 boyutlu dinamik diziyi nasıl bildireceğimi söyler misiniz? Bunun için yardım yalnızca bir dinamik boyuta sahip bir örneğe sahiptir:

çift matris[][ 10 ][ 20 ]; // 3B dinamik dizi

ArrayResize (matris, 5 ); // ilk boyutun boyutunu ayarla


Ve reklam:

çift matris[][][ ] ;

çalışmıyor, derleyici şunu yazıyor: ']' - geçersiz dizin değeri

 

Yardım edin neyi sevmediğini anlayamıyorum..sürekli 10016 yazıyor ( stoploss doğru ayarlanmamış gibi) Teşekkürler

 #property version   "1.00"
//+------------------------------------------------------------------+
#define MAGIC_NUMBER 12937
input double BASELOT= 0.5 ;
input double stoploss= 0.0 ;
input double takeprofit= 0.0 ;
//+------------------------------------------------------------------+
int OnInit ()
  {
   int send;
   int signalMA=signalMA();
   if (signalMA== 1 )
     {
      send= 1 ;
      Send(send);
        } else if (signalMA== 2 ) {
      send= 2 ;
      Send(send);
     }
   return ( 0 );
  }
//+------------------------------------------------------------------+
int signalMA() 
  {
   int signalMA= 0 ;
   double inMA6 = iMA ( NULL , 0 , 6 , 0 , MODE_SMA , 0 );
   double inMA1 = iMA ( NULL , 0 , 1 , 0 , MODE_SMA , 0 );
   if (inMA6>inMA1)
     {
      signalMA= 1 ;
     }
   if (inMA6<inMA1)
     {
      signalMA= 2 ;
     }
   return (signalMA);
  }
//+------------------------------------------------------------------+
void Send( int send)
  {
   MqlTick tick;
   MqlTradeRequest request;
   MqlTradeResult tradeResult;
   MqlTradeCheckResult checkResult;
   static bool br=false;
   if (!br) 
     {
       if (send== 1 ) 
        {
         br=true;
         request.price=tick.bid;
         request.sl = stoploss;
         request.tp = takeprofit;
         request.type= ORDER_TYPE_SELL ;
           } else if (send== 2 ){
         br=true;
         request.price=tick.ask;
         request.sl = stoploss;
         request.tp = takeprofit;
         request.type= ORDER_TYPE_BUY ;
        }
       if (br) 
        {
         request.action       = TRADE_ACTION_DEAL ;
         request.symbol       = _Symbol ;
         request.volume       = BASELOT;
         request.deviation    = 5 ;
         request.type_filling = ORDER_FILLING_AON ;
         request.type_time    = ORDER_TIME_GTC ;
         request.comment      = "" ;
         request.magic        = MAGIC_NUMBER;
         if ( OrderCheck (request,checkResult)) 
           {
             OrderSend (request,tradeResult);
              } else {
             Print ( "Error: " ,checkResult.retcode);
           }
        }
     }
  }
//+------------------------------------------------------------------+
 
tmt0086 :

Yardım edin neyi sevmediğini anlayamıyorum..sürekli 10016 yazıyor (stoploss doğru ayarlanmamış gibi) Teşekkürler

İlk olarak, bu işlevi yanlış yazmışsınız.

 int signalMA() 
  {
   int signalMA= 0 ;
   double inMA6 = iMA ( NULL , 0 , 6 , 0 , MODE_SMA , 0 );
   double inMA1 = iMA ( NULL , 0 , 1 , 0 , MODE_SMA , 0 );
   if (inMA6>inMA1)
     {
      signalMA= 1 ;
     }
   if (inMA6<inMA1)
     {
      signalMA= 2 ;
     }
   return (signalMA);
  }

Öyle olmalı, henüz söyleyemediğim durma hataları pahasına


 //+------------------------------------------------------------------+
#define MAGIC_NUMBER 12937
input double BASELOT= 0.5 ;
input double stoploss= 0.0 ;
input double takeprofit= 0.0 ;

int handleMA1= INVALID_HANDLE ;
int handleMA2= INVALID_HANDLE ;

double inMA6[];
double inMA1[];

MqlTick tick;
MqlTradeRequest request;
MqlTradeResult tradeResult;
MqlTradeCheckResult checkResult;
//+------------------------------------------------------------------+
int OnInit ()
  {
   handleMA1= iMA ( NULL , 0 , 6 , 0 , MODE_SMA , 0 );
   handleMA2= iMA ( NULL , 0 , 1 , 0 , MODE_SMA , 0 );

   int send;
   int signalMA=signalMA();
   if (signalMA== 1 )
     {
      send= 1 ;
      Send(send);
        } else if (signalMA== 2 ) {
      send= 2 ;
      Send(send);
     }
   return ( 0 );
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int signalMA()
  {
   int sig= 0 ;
   if (handleMA1== INVALID_HANDLE )
     {
      handleMA1= iMA ( NULL , 0 , 6 , 0 , MODE_SMA , 0 );
       return ( 0 );
     }
   if (handleMA2== INVALID_HANDLE )
     {
      handleMA2= iMA ( NULL , 0 , 1 , 0 , MODE_SMA , 0 );
       return ( 0 );
     }
   if ( CopyBuffer (handleMA1, 0 , 0 , 1 ,inMA6)< 1 ) return ( 0 );
   if ( CopyBuffer (handleMA2, 0 , 0 , 1 ,inMA1)< 1 ) return ( 0 );
   if (! ArraySetAsSeries (inMA6,true)) return ( 0 );
   if (! ArraySetAsSeries (inMA1,true)) return ( 0 );

   if (inMA6[ 0 ]>inMA1[ 0 ]) sig= 1 ;
   else if (inMA6[ 0 ]<inMA1[ 0 ]) sig= 2 ;
   else sig=0;
   return (sig);
  }
//+------------------------------------------------------------------+
void Send( int send)
  {
   static bool br=false;
   if (!br)
     {
       if (send== 1 )
        {
         br=true;
         request.price=tick.bid;
         request.sl = stoploss;
         request.tp = takeprofit;
         request.type= ORDER_TYPE_SELL ;
           } else if (send== 2 ){
         br=true;
         request.price=tick.ask;
         request.sl = stoploss;
         request.tp = takeprofit;
         request.type= ORDER_TYPE_BUY ;
        }
       if (br)
        {
         request.action       = TRADE_ACTION_DEAL ;
         request.symbol       = _Symbol ;
         request.volume       = BASELOT;
         request.deviation    = 5 ;
         request.type_filling = ORDER_FILLING_AON ;
         request.type_time    = ORDER_TIME_GTC ;
         request.comment      = "" ;
         request.magic        = MAGIC_NUMBER;
         if ( OrderCheck (request,checkResult))
           {
             OrderSend (request,tradeResult);
              } else {
             Print ( "Error: " ,checkResult.retcode);
           }
        }
     }
  }
//+------------------------------------------------------------------+
 
-Alexey- :

Lütfen bana 2 boyutlu bir dinamik diziyi nasıl bildireceğimi söyler misiniz? Bunun için yardım yalnızca bir dinamik boyuta sahip bir örneğe sahiptir:

çift matris[][ 10 ][ 20 ]; // 3B dinamik dizi

ArrayResize (matris, 5 ); // ilk boyutun boyutunu ayarla


Ve reklam:

çift matris[][][ ] ;

çalışmıyor, derleyici şunu yazıyor: ']' - geçersiz dizin değeri

MQL5'te yalnızca bir dinamik boyut vardır.

çoklu kullanmak için yapıları kullanabilirsiniz

 struct SDynamic
  {
   double             data[];
  };

...

SDynamic Arr2D[];

...

bool Arr2DResize(SDynamic &a2d[], int d1, int d2)
  {
   if (ArrayResize(a2d,d1)!=d1) return ( false );
   for ( int i= 0 ;i<d1;i++)
       if (ArrayResize(a2d[i].data,d2)!=d2) return ( false );
   return ( true );
  }

...

Arr2DResize(Arr2D, 10 , 10 );

...

Print(Arr2D[ 0 ].data[ 3 ]);
 
mql5 :

MQL5'te yalnızca bir dinamik boyut vardır.

çoklu kullanmak için yapıları kullanabilirsiniz

Sayın mql5 , yardım, açıklamalar ve pratik örnek için teşekkürler.
 

Bir sonraki foruma geçmek gerekliydi ama resimlerde bir sorun var (yüklenmedi)... :(


geliştiriciler

MT4 raporundan 229. Bu bir hata mı yoksa ne?


 
Interesting :

Bir sonraki foruma gitmek gerekliydi ama kortinki ile ilgili bir sorun var (yüklemek için işe yaramadı) ... :(



Anladığım kadarıyla resim gösteriliyor.

Tarayıcı sürümü gerekli.

 
alexvd :

Anladığım kadarıyla resim gösteriliyor.

Tarayıcı sürümü gerekli.

Resmi Png ve Gif formatında koymaya çalıştım (radikal.ru hizmetini kullanarak Jpg olarak ekleme girişimi de oldu).

Firefox tarayıcısı 3.6.13.

not

Bu konuya yapıştırmaya çalıştım - MetaTrader 4 Client Terminal build 228'in yeni versiyonu

Ne garip Png orada mevcut gibi görünüyor.

Новая версия MetaTrader 4 Client Terminal build 228 - MQL4 форум
  • www.mql5.com
Новая версия MetaTrader 4 Client Terminal build 228 - MQL4 форум
 
Interesting :

geliştiriciler

MT4 raporundan 229. Bu bir hata mı yoksa ne?



Evet, öyle görünmüyor.

Her ikisi de satın alma için olan yalnızca 2 (45 üzerinden) kaybetme işlemi olduğu ortaya çıktı.

Belki de yanlış yere bakıyorum?

 
Interesting :

Resmi Png ve Gif formatında koymaya çalıştım (radikal.ru hizmetini kullanarak Jpg olarak ekleme girişimi de oldu).

Firefox tarayıcısı 3.6.13.

not

Bu konuya yapıştırmaya çalıştım - MetaTrader 4 Client Terminal build 228'in yeni versiyonu

Ne garip Png orada mevcut gibi görünüyor.

Önbelleği temizlemeyi deneyin. Farklı seçenekler, farklı tarayıcılar denendi - ekleme başarılı oldu.

Ne de olsa resmi bir saldırı olarak değil, doğrudan yoruma mı ekliyorsunuz?