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

 
User_mt5:


一般的に「グラデーション」と呼ばれる概念があります。グラフの)「急峻さ」を表す指標である。この産業の文脈では、この指標は点/ 時間で表現することができます。本来はレートである。この指標は、グラフに添付されないため、スケールに依存することはありません。グラデーションを使用し、角度をつけない。


このグラデーションはどのように計算するのですか?

アイデアを詳しく説明する方法はないのでしょうか?私がどのフォーラムのスレッドに質問を書き込んだか、ご確認ください。

 
igorbel:

このグラデーションはどのように計算するのですか?

アイデアを詳しく説明する方法はないのでしょうか?私がどのフォーラムのスレッドに質問を書き込んだか、ご確認ください。

アイデアがないんです。

単純な計算の話です。勾配は速度です。スピードそのものは、分母に時間が入っている場合です。身近なところでは、自動車の速度のことで、km/hourで表される。しかし、一般的なスピードは違うことがあります。例えば、ソフトウェアの コードを書く スピードは、1日あたりの行数で測られる。価格チャートの場合、スピードは1分あたりのポイント数で表されます。従来は、チャートのある部分のグラデーション(傾き、上昇率)が、例えば100ポイント/分より高ければ、その部分はトレンド、低ければフラットと考えることができた。

 

こんにちは 2017.07.07_15:55 GMT+3です。理解できない。シグナルがあるように見えるが、ストラテジーテスターでは シグナルがない。では、褒められたMT5テスターは、MT4テスターとどう違うのですか?標準のMoving Average.mq5とほぼ同じように書きました。でも、なんとかデモ口座でExpert Advisorをテストすることができました。取引は開始されましたが、自分で決済する必要がありました。クロージングを直しました。しかし、別のことを書いたら、EAが再び取引を開始しなくなりました。エラーや警告がゼロであることは、Expert Advisorの状態が良好であることを示す指標ではありません。ここに引っかかったんです。Expert Advisorが動作していないとのことですが、どのように判断すればよいですか?またカルプトフを困らせなければならない。禁止事項のリストを全部受け取っていたら、自分でやっていたかもしれません。全部ではありませんが、ファイルを掲載しています。16:06 GMT+3。

ファイル:
 

助けてください!

MQL4でインジケータの値を取得するには、以下の関数で十分です。

double CMAf(int index)
  {
   return NormalizeDouble(iMA(Symbol(),0,period_CMA,0,0,0,index),Digits);
  }
MQL5のアナログを入手するには?
 
-Aleks-:

助けてください!

MQL4でインジケーターの名前を取得するには、シンプルな関数で十分です。

MQL5のアナログを入手するには?

iMAの ヘルプはご覧になりましたか?

ステップ1:「ヘッダー」で、iMAインジケータのハンドルを格納するための変数を宣言します。

ステップ2:OnInit()でインジケータハンドルを作成します。

//+------------------------------------------------------------------+
//|                                                       iMAGet.mq5 |
//|                              Copyright © 2017, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2017, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
//--- input parameters
input int                  ma_period=10;                 // period of ma 
input int                  ma_shift=0;                   // shift 
input ENUM_MA_METHOD       ma_method=MODE_SMA;           // type of smoothing 
input ENUM_APPLIED_PRICE   applied_price=PRICE_CLOSE;    // type of price 
input ENUM_TIMEFRAMES      period=PERIOD_CURRENT;        // timeframe 
//---
int                        handle_iMA;                   // variable for storing the handle of the iMA indicator 
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- create handle of the indicator iMA
   handle_iMA=iMA(Symbol(),period,ma_period,ma_shift,ma_method,applied_price);
//--- if the handle is not created 
   if(handle_iMA==INVALID_HANDLE)
     {
      //--- tell about the failure and output the error code 
      PrintFormat("Failed to create handle of the iMA indicator for the symbol %s/%s, error code %d",
                  Symbol(),
                  EnumToString(Period()),
                  GetLastError());
      //--- the indicator is stopped early 
      return(INIT_FAILED);
     }
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   double ma_0=iMAGet(0);
   double ma_1=iMAGet(1);

   Comment("MA #0: ",DoubleToString(ma_0,Digits()+1),"\n",
           "MA #1: ",DoubleToString(ma_1,Digits()+1));
  }
//+------------------------------------------------------------------+
//| Get value of buffers for the iMA                                 |
//+------------------------------------------------------------------+
double iMAGet(const int index)
  {
   double MA[1];
//--- reset error code 
   ResetLastError();
//--- fill a part of the iMABuffer array with values from the indicator buffer that has 0 index 
   if(CopyBuffer(handle_iMA,0,index,1,MA)<0)
     {
      //--- if the copying fails, tell the error code 
      PrintFormat("Failed to copy data from the iMA indicator, error code %d",GetLastError());
      //--- quit with zero result - it means that the indicator is considered as not calculated 
      return(0.0);
     }
   return(MA[0]);
  }
//+------------------------------------------------------------------+


そして、その結果(スクリーンショットの十字キーはバー#1にセットされています)。

アイマージェット

ファイル:
iMAGet.mq5  7 kb
 
Vladimir Karputov:

iMAの ヘルプはご覧になりましたか?

ステップ1:「ヘッダー」でiMAインジケータ・ハンドルを格納する変数を宣言します。

ステップ2:OnInit()でインジケータハンドルを作成します。

そして、その結果(スクリーンショットの十字キーはバー#1にセットされています)。

返信ありがとうございました。

MQL4では、すべてが関数で宣言されているため、EAの設定に応じて起動する関数のセットが存在します。間違っていなければ、あなたの場合、TSが使用を許可している何十種類ものインジケータに対してメモリが割り当てられることになり、合理的ではない、あるいはメモリが割り当てられないのでしょうか?

 

そのクラスの特定のオブジェクトを持たずに、クラスの関数を呼び出す ことは可能ですか?つまり、こんな感じでしょうか。

class test
  {
public:
                     test(void);
                    ~test(void);
  public: void PrintInfo (){Print ("Class test");}
  };
//---
void OnStart()
  {
      test.PrintInfo() ;
  }

それとも、オブジェクトを作成する必要があるのでしょうか?この関数がクラスのインスタンスではなく、クラスの定義そのものを参照している場合であっても。

 

クラス変数にアクセス する必要のない関数は、staticにします。

class test
{
public:
   test();
   ~test();

   static void PrintInfo()
   {
      Print( "Class test" );
   }
};

void OnStart()
{
   test::PrintInfo();
}
 
Koldun Zloy:

クラス変数にアクセス する必要のない関数は、staticにします。

ありがとうございます、まさにその通りです。
 

エラーが発生する - 何が問題なのか?MQL4では動作するのですが・・・。


   double arrFibo[17]=
     {
      0,
      0.236,
      0.382,
      0.5,
      0.618,
      0.764,
      1,
      1.236,
      1.382,
      1.5,
      1.618,
      2.0,
      2.236,
      2.382,
      2.5,
      2.618,
      2.764,
      3        //Всего уровней 17 + 0
     };
'{' - 初期化子が多すぎる TZ_Sky_and_Ground_V_04.mq5 2484 6