오류, 버그, 질문 - 페이지 256

 

2차원 동적 배열 을 선언하는 방법을 알려주십시오. 이에 대한 도움말에는 동적 차원이 하나인 예만 있습니다.

이중 행렬[][ 10 ][ 20 ]; // 3D 동적 배열

ArrayResize (행렬, 5 ); // 첫 번째 차원의 크기 설정


그리고 광고:

이중 행렬[][ ] ;

작동하지 않음, 컴파일러는 ']' - 잘못된 인덱스 값을 작성합니다.

 

도와주세요 쟤 싫어하는게 이해가 안가네요.. 맨날 쓰는 10016 ( 스톱 로스 설정이 안맞는거같은거) 감사합니다

 #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 :

도와주세요 쟤 싫어하는게 이해가 안되네요.. 맨날 씁니다 10016 (스톱로스 설정이 안맞는듯) 감사합니다

첫째, 이 함수를 잘못 작성했습니다.

 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);
  }

그래야지 아직 알 수 없는 stop error를 감수하고


 //+------------------------------------------------------------------+
#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- :

2차원 동적 배열 을 선언하는 방법을 알려주십시오. 이에 대한 도움말에는 동적 차원이 하나인 예만 있습니다.

이중 행렬[][ 10 ][ 20 ]; // 3D 동적 배열

ArrayResize (행렬, 5 ); // 첫 번째 차원의 크기 설정


그리고 광고:

이중 행렬[][ ] ;

작동하지 않음, 컴파일러는 ']' - 잘못된 인덱스 값을 작성합니다.

MQL5에는 동적 차원이 하나만 있습니다.

여러 개를 사용하려면 구조체를 사용할 수 있습니다

 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에는 동적 차원이 하나만 있습니다.

여러 개를 사용하려면 구조체를 사용할 수 있습니다

~에게 mql5 , 도움, 설명 및 실제 사례에 감사드립니다.
 

다음포럼으로 넘어가야 하는데 사진이 문제(로드가 안됨) ... :(


개발자.

MT4 보고서 229에서. 이것이 버그입니까 아니면 무엇입니까?


 
Interesting :

다음 포럼으로 넘어가야 하는데 코르틴키에 문제가 있습니다(로드가 안되네요)... :(



내가 이해한 대로 그림이 표시됩니다.

브라우저 버전이 필요합니다.

 
alexvd :

내가 이해한 대로 그림이 표시됩니다.

브라우저 버전이 필요합니다.

PngGif 형식으로 사진을 넣으려고 했습니다(radikal.ru 서비스를 사용하여 Jpg 로 삽입하려는 시도도 있었습니다).

파이어폭스 브라우저 3.6.13.

추신

이 스레드에 붙여넣으려고 했습니다. - MetaTrader 4 클라이언트 터미널 빌드 228의 새 버전

이상한 Png 가 거기에 있는 것 같습니다.

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

개발자.

MT4 보고서 229에서. 이것이 버그입니까 아니면 무엇입니까?



예, 그렇지 않은 것 같습니다.

손실 거래는 2건(45건 중 2건)에 불과했으며 둘 다 매수 거래였습니다.

내가 잘못된 곳을 찾고 있는 것은 아닐까?

 
Interesting :

PngGif 형식으로 사진을 넣으려고 했습니다(radikal.ru 서비스를 사용하여 Jpg 로 삽입하려는 시도도 있었습니다).

파이어폭스 브라우저 3.6.13.

추신

이 스레드에 붙여넣으려고 했습니다. - MetaTrader 4 클라이언트 터미널 빌드 228의 새 버전

이상한 Png 가 거기에 있는 것 같습니다.

캐시를 지워보십시오. 다른 옵션, 다른 브라우저를 시도했지만 성공적으로 추가되었습니다.

결국 공격이 아니라 댓글에 사진을 직접 삽입하는 건가요?