초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1214

 
Igorz2006 :
감사합니다. 노력하겠습니다. 분석을 위해 비트코인 및 암호화폐 시세 이력을 가져와야 합니다.

5개는 닫힌 히스토리 형식을 가지고 있는데 수입품 에 대해서는 들어본 적이 없습니다. 필요한 모든 기호가 있는 데모를 여는 것이 더 쉽습니다.

 

안녕하세요!

2개의 매수 포지션과 3개의 매도 포지션을 엽니다. 열린 위치 를 계산합니다.

포지션을 여는 데에는 문제가 없었지만 계산에 어려움이 있었다.

신입생을 도와주세요

 input int PositionSell = 
5;


//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---

//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
  
   int buy_count  = 0 ;
   int sell_count = 0 ;

//---объявление и инициализация запроса и резкльтата
   MqlTradeResult   result_sell  = { 0 };
   MqlTradeRequest request_sell = { 0 };

   request_sell.action = TRADE_ACTION_DEAL ;
   request_sell.symbol = Symbol ();
   request_sell.volume = 0.1 ;
   request_sell.type   = ORDER_TYPE_SELL ;

   MqlTradeResult   result_bay  = { 0 };
   MqlTradeRequest request_bay = { 0 };

   request_bay.action = TRADE_ACTION_DEAL ;
   request_bay.symbol = Symbol ();
   request_bay.volume = 0.1 ;
   request_bay.type   = ORDER_TYPE_BUY ;



   if ( PositionsTotal () < PositionSell)
     {
       OrderSend (request_sell,result_sell);
       OrderSend (request_sell,result_sell);
       OrderSend (request_sell,result_sell);

       OrderSend (request_bay,result_bay);
       OrderSend (request_bay,result_bay);
     } else return ;

   for ( int i= PositionsTotal ()- 1 ; i>= 0 ; i--)
     {
       if ( PositionSelect ( _Symbol ))
     {
       switch ( PositionGetInteger ( POSITION_TYPE )) //Здесь выдает  ошибку implicit conversion from 'number' to 'string'
           {
             case POSITION_TYPE_BUY :  buy_count++;   break ; 
             case POSITION_TYPE_SELL : sell_count++; break ;
           }

        }
     }
     Print ( "Ордеров на покупку: " + buy_count + ", Ордеров на продажу: " + sell_count);
  }
 
Mihail Marchukajtes :

동료를 환영합니다!

다음을 프롬프트합니다. OnTester 함수에서 두 개의 매개변수가 계산됩니다. 하나의 매개변수에 대해 최적화할 때 최적화 테이블에 두 번째 매개변수를 단순히 표시하는 것이 가능합니까??? 그렇다면 어떻게 해야 할까요? 고맙습니다!

동료들이여, 내 질문에 답이 없습니까?
 
Pineapple88 :

안녕하세요!

2개의 매수 포지션과 3개의 매도 포지션을 엽니다. 열린 위치 를 계산합니다.

포지션을 여는 데에는 문제가 없었지만 계산에 어려움이 있었다.

신입생을 도와주세요

     for ( int i= 0 ; i< PositionsTotal (); i++)
     {
           if ( PositionGetTicket (i) == 0 )                         continue ;
           if ( PositionGetString ( POSITION_SYMBOL ) != _Symbol )     continue ;
           switch ( ( int ) PositionGetInteger ( POSITION_TYPE ) )
           {
               case POSITION_TYPE_BUY :  buy_count++;   break ; 
               case POSITION_TYPE_SELL : sell_count++; break ;
           }
     }
 
Konstantin Nikitin :

고맙습니다! 이거 정리할게요...

 
Pineapple88 :

고맙습니다! 이거 정리할게요...

PositionGetTicket , PositionGetSymbol, PositionSelect를 읽습니다. 특히 참고하세요.

 
안녕하세요! 도움이 필요하다. 이유를 알 수 없다
예를 들어:
이중 f=1.11215;
이중 g=1.17545;
이중 j=f-(fg);
인쇄 (j);
//결과: 1.17545

1.1661이 아닌 이유는 무엇입니까?
그것에 대해 어디에서 읽을 수 있습니까?
 
Reznik Nikolai :
안녕하세요! 도움이 필요하다. 이유를 알 수 없다
예를 들어:
이중 f=1.11215;
이중 g=1.17545;
이중 j=f-(fg);
인쇄(j);
//결과: 1.17545

1.1661이 아닌 이유는 무엇입니까?
그것에 대해 어디에서 읽을 수 있습니까?

초등학교 3학년 수학 교과서에서 반드시 읽어야 하는 책이다.

 
결과적으로 MT4를 찾았습니다. 작업을 크게 단순화합니다.
 

모두 좋은 하루!

당신의 도움을 요청합니다.

EA는 두 mamas의 교차점에 위치를 엽니다. 반대 포지션을 청산하려고 하는데 [잘못된 요청] 오류가 발생합니다. 요청 매개변수를 채우는 동안 오류가 발생했는지 이해합니까?

 void OnTick ()
  {

   MqlTradeResult   result_bay  = { 0 };
   MqlTradeRequest request_bay = { 0 };

   request_bay.action = TRADE_ACTION_DEAL ;
   request_bay.symbol = Symbol ();
   request_bay.volume = 0.1 ;
   request_bay.type   = ORDER_TYPE_BUY ;

   MqlTradeResult   result_sell  = { 0 };
   MqlTradeRequest request_sell = { 0 };

   request_sell.action = TRADE_ACTION_DEAL ;
   request_sell.symbol = Symbol ();
   request_sell.volume = 0.1 ;
   request_sell.type   = ORDER_TYPE_CLOSE_BY ;

   double MovingAverage1[], MovingAverage2[]; //задаем два массиса для МА

   int MovingAverageIndic1 = iMA ( _Symbol , 0 , 20 , 0 , MODE_EMA , PRICE_CLOSE );
   int MovingAverageIndic2 = iMA ( _Symbol , 0 , 200 , 0 , MODE_EMA , PRICE_CLOSE );

   ArraySetAsSeries (MovingAverage1, true );
   ArraySetAsSeries (MovingAverage2, true );

   CopyBuffer (MovingAverageIndic1, 0 , 0 , 3 ,MovingAverage1);
   CopyBuffer (MovingAverageIndic2, 0 , 0 , 3 ,MovingAverage2);

   if (
      (MovingAverage1[ 0 ]>MovingAverage2[ 0 ]) &&
      (MovingAverage1[ 1 ]<MovingAverage2[ 1 ])
   )
     {

       if ( PositionsTotal ()== 0 )
         OrderSend (request_bay,result_bay);
     }

   if (
      (MovingAverage1[ 0 ]<MovingAverage2[ 0 ]) &&
      (MovingAverage1[ 1 ]>MovingAverage2[ 1 ])
   )

     {
       if (
         (MovingAverage1[ 0 ]<MovingAverage2[ 0 ]) &&
         (MovingAverage1[ 1 ]>MovingAverage2[ 1 ])
      )
        {
         if ( PositionsTotal ()== 1 )
         
         OrderSend (request_sell,result_sell); 
           }


     }




  }

사유: