初心者の方からの質問 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関数は、2つのパラメータを計算します。1つのパラメータで最適化する場合、2つ目のパラメータは単純に最適化テーブルに出力される可能性はありますか?また、Yesの場合はどうすればいいのか?ありがとうございました。

同僚よ、私の質問に対する答えはないのか?
 
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:

ありがとうございました。調べてみますね...。

Read PositionGetTicket, PositionGetSymbol, PositionSelect. 特にノート。

 
こんにちは! 助けてほしいことがあります。なぜか理解できない
例えば、こんな感じです。
double f=1.11215;
double g=1.17545;
double j=f-(f-g)となります。
Print(j)です。
//結果:1.17545

なぜ1.1661ではないのか?
どこで読むことができますか?
 
Reznik Nikolai:
こんにちは! 助けてほしいことがあります。 なぜか理解できない
例えば、こんな感じです。
double f=1.11215;
double g=1.17545;
double j=f-(f-g)となります。
Print(j)です。
//結果:1.17545

なぜ1.1661ではないのか?
どこで読むことができますか?

小学校3年生の算数の教科書に必ず載っています。

 
やっと見つけたmt4、これでずっと楽になります。
 

皆さん、ごきげんよう。

よろしくお願いします。

私のExpert Advisorは、2つのワゴンの交差点でポジションをオープンします。反対側のポジションで決済 しようとしているのですが、[Invalid request]エラーが表示されます。 リクエストパラメータの入力に誤りがあるのでは?

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


     }




  }

理由: