初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 663

 
new-rena:

回答は5ポンド?

)

待機中...

まあ、個人の作業が必要な問題で、その結果が完成したコードであれば、何でもありですが......。
 

午後このインジケータは他のインジケータからデータを取得する必要があります。インジケータをロード すると履歴が表示され、新しい値が更新されません。ループまたは他のどこかのエラーであることを助言してください。

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,   // Количество просчитанных баров
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   int limit;
   int counted_bars = IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   limit = Bars - counted_bars - 500;
   for (int i=limit; i>=0; i--)
   {
     Buf_1[i]=iCustom(Symbol(), 0,"ATR", 0, i);//При подстановке любого индикатора нет обновления!!!
   }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 

このような状況で、エラーが発生するのですが、なぜエラーが発生するのか、MQL5ではユーザー入力変数の値を変更することができないのか、理解することができますか?

スリッページ」-定数は変更不可 Kamikadze_MA-may.mq5 67 7

extern int Slippage    = 10;                       // Проскальзывание

int init()
  {
//3,5 знаков
   if(MarketInfo(Symbol(),MODE_DIGITS)==3 || MarketInfo(Symbol(),MODE_DIGITS)==5)
     {
      Slippage*=10;
     }
   return(INIT_SUCCEEDED);
  }

  }

 
-Aleks-:

このような状況で、私はエラーが発生します - なぜエラーが発生するのか理解するのに役立ちます - MQL5では、ユーザーが入力した変数の値を変更することはできません?

スリッページ」-定数は変更不可 Kamikadze_MA-may.mq5 67 7

extern int Slippage    = 10;                       // Проскальзывание

int init()
  {
//3,5 знаков
   if(MarketInfo(Symbol(),MODE_DIGITS)==3 || MarketInfo(Symbol(),MODE_DIGITS)==5)
     {
      Slippage*=10;
     }
   return(INIT_SUCCEEDED);
  }

  }

5には、そのようなものはありません。

マーケット情報

スリッページを知らない)

 
new-rena:

こちらは5pcには入っていません。

マーケット情報

なんだよ~、なんでエラーにしないんだよ~・・・。

どのようなアナログを使えばいいのでしょうか?

 
-Aleks-:

あ、ボケたー、なんでエラーにしないんだろう...。

どのようなアナログを使えばいいのでしょうか?

先週末の同じスレッドで、5circaに乗り換えるというのがありました。

私の投稿から遡って、2-3ページの投稿をすべて読んでください。

https://www.mql5.com/ru/forum/6343/page662#comment_2930149

Вопросы от начинающих
Вопросы от начинающих
  • www.mql5.com
Форум трейдеров MQL5.community
 
new-rena:

先週末の同スレッドでは、5kへの切り替えを扱っていました。

私の投稿から遡って、2-3ページの投稿をすべて読んでください。

https://www.mql5.com/ru/forum/6343/page662#comment_2930149

はいはい、もうその記事開きましたよ〜ありがとうございます。MarketInfoMQL4関数を挿入したが、結果がマイナスになる・・・。置き場所を間違えたかな...。

 
-Aleks-:

はい、すでにこの記事を開いていますよ。ありがとうございます。MarketInfoMQL4関数を貼り付けたのですが、結果がマイナスなんです・・・。置き場所を間違えたかも...。

MarketInfo(Symbol(),MODE_DIGITS) is (int)SymbolInfoInteger(Symbol(),SYMBOL_DIGITS)

関数の代入の奥深さに目を向けるとよいでしょう

よりエレガントでMQL5に近いものになると思います。

要するに、ゆっくりでいいんです。

ライブラリや外来関数は一切必要ありません。純粋なMQL5で書くことを学ぶべきでしょう。

 
-Aleks-:

このような状況で、エラーが発生するのですが、なぜエラーが発生するのか、MQL5ではユーザー入力変数の値を変更することができないのか、理解することができますか?

スリッページ」-定数は変更不可 Kamikadze_MA-may.mq5 67 7

extern int Slippage    = 10;                       // Проскальзывание

int init()
  {
//3,5 знаков
   if(MarketInfo(Symbol(),MODE_DIGITS)==3 || MarketInfo(Symbol(),MODE_DIGITS)==5)
     {
      Slippage*=10;
     }
   return(INIT_SUCCEEDED);
  }

  }

はい、入力パラメータを変更することはできません。正直なところ、この値を3/5桁の相場に合わせて変更する意味がわからないのですが?この値は、入力パラメーターで設定します。わざわざ100(3/5桁の場合)と書くのはダメなんですか?
 
new-rena:

MarketInfo(Symbol(),MODE_DIGITS) is (int)SymbolInfoInteger(Symbol(),SYMBOL_DIGITS)

関数の代入の奥深さに目を向けるとよいでしょう

よりエレガントでMQL5に近いものになると思います。

要するに、ゆっくりでいいんです。

ライブラリや外来関数は一切必要ありません。純粋なMQL5で書くことを学ぶべきでしょう。

ところで、MarketInfoMQL4()の関数がエラーになるのですが、どうすればいいのでしょうか?(2つの言語を学ぶと頭が沸騰しそうです。深いコーディングなしに、株式市場でアイデアがどのように機能するかをチェックできるようにする必要があります)。

'(' - 名前が予想される Kamikadze_MA-may.mq5 332 17
'::'- 期待される名前 Kamikadze_MA-may.mq5 332 17


double MarketInfoMQL4(string symbol,
                      int type)
  {
   switch(type)
     {
      case MODE_LOW:
         return(SymbolInfoDouble(symbol,SYMBOL_LASTLOW));
      case MODE_HIGH:
         return(SymbolInfoDouble(symbol,SYMBOL_LASTHIGH));
      case MODE_TIME:
         return(SymbolInfoInteger(symbol,SYMBOL_TIME));
      case MODE_BID:
        {
         MqlTick last_tick;
         SymbolInfoTick(symbol,last_tick);
         double Bid=last_tick.bid;
         return(Bid);
        }
      case MODE_ASK:
        {
         MqlTick last_tick;
         SymbolInfoTick(symbol,last_tick);
         double Ask=last_tick.ask;
         return(Ask);
        }
      case MODE_POINT:
         return(SymbolInfoDouble(symbol,SYMBOL_POINT));
      case MODE_DIGITS:
         return(SymbolInfoInteger(symbol,SYMBOL_DIGITS));
      case MODE_SPREAD:
         return(SymbolInfoInteger(symbol,SYMBOL_SPREAD));
      case MODE_STOPLEVEL:
         return(SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL));
      case MODE_LOTSIZE:
         return(SymbolInfoDouble(symbol,SYMBOL_TRADE_CONTRACT_SIZE));
      case MODE_TICKVALUE:
         return(SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_VALUE));
      case MODE_TICKSIZE:
         return(SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_SIZE));
      case MODE_SWAPLONG:
         return(SymbolInfoDouble(symbol,SYMBOL_SWAP_LONG));
      case MODE_SWAPSHORT:
         return(SymbolInfoDouble(symbol,SYMBOL_SWAP_SHORT));
      case MODE_STARTING:
         return(0);
      case MODE_EXPIRATION:
         return(0);
      case MODE_TRADEALLOWED:
         return(0);
      case MODE_MINLOT:
         return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN));
      case MODE_LOTSTEP:
         return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP));
      case MODE_MAXLOT:
         return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX));
      case MODE_SWAPTYPE:
         return(SymbolInfoInteger(symbol,SYMBOL_SWAP_MODE));
      case MODE_PROFITCALCMODE:
         return(SymbolInfoInteger(symbol,SYMBOL_TRADE_CALC_MODE));
      case MODE_MARGINCALCMODE:
         return(0);
      case MODE_MARGININIT:
         return(0);
      case MODE_MARGINMAINTENANCE:
         return(0);
      case MODE_MARGINHEDGED:
         return(0);
      case MODE_MARGINREQUIRED:
         return(0);
      case MODE_FREEZELEVEL:
         return(SymbolInfoInteger(symbol,SYMBOL_TRADE_FREEZE_LEVEL));

      default: return(0);
     }
   return(0);
  }

理由: