スポンサーリンク
ホーム » Uncategorized » OriginalIndicators.mqhファイルのコード全体記述
a

OriginalIndicators.mqhファイルのコード全体記述

Uncategorized
スポンサーリンク

OriginalIndicators.mqhファイルのコード全体記述は以下のようになっています。

//+------------------------------------------------------------------+
//|                                           OriginalIndicators.mqh |
//|                                                         MQL5ssei |
//|                                    https://mqlinvestmentlab.com/ |
//+------------------------------------------------------------------+
#property copyright "MQL5ssei"
#property link      "https://mqlinvestmentlab.com/"

//インジケータ値を配列にコピーす数を規定
#define MAX_COPY 100

//インジケータに共通する処理を担う基礎クラス
class CBaseIndicator
{
	protected:
		int handle;//インジケータのハンドル値を格納する変数
		double main[];//インジケータの値を格納する配列
		
	public:
		CBaseIndicator(void);//コンストラクタ
		double Main(int parIndex=0);
		void Release();
		virtual int Init() { return(handle); }
};


CBaseIndicator::CBaseIndicator(void)
{
	ArraySetAsSeries(main,true);
}

double CBaseIndicator::Main(int parIndex=0)
{
	CopyBuffer(handle,0,0,MAX_COPY,main);
	double value = NormalizeDouble(main[parIndex],_Digits);
	return(value);
}

void CBaseIndicator::Release(void)
{
	IndicatorRelease(handle);
}

class CDerivediMA : public CBaseIndicator
{
	public:
		int Init(string parSymbol,ENUM_TIMEFRAMES parTimeframe,int parMAPeriod,int parMAShift,ENUM_MA_METHOD parMAMethod,ENUM_APPLIED_PRICE parMAPrice);
};

int CDerivediMA::Init(string parSymbol,ENUM_TIMEFRAMES parTimeframe,int parMAPeriod,int parMAShift,ENUM_MA_METHOD parMAMethod,ENUM_APPLIED_PRICE parMAPrice)
{
	handle = iMA(parSymbol,parTimeframe,parMAPeriod,parMAShift,parMAMethod,parMAPrice);
	return(handle);
}

class CDerivediStochastic : public CBaseIndicator
{
	private:
		double signal[];
	
	public:
		int Init(string parSymbol, ENUM_TIMEFRAMES parTimeframe, int parKPeriod, int parDPeriod, int parSlowing, ENUM_MA_METHOD parMAMethod, ENUM_STO_PRICE parPrice);
		double Signal(int parShift=0);
		CDerivediStochastic(void);
};

int CDerivediStochastic::Init(string parSymbol, ENUM_TIMEFRAMES parTimeframe, int parKPeriod, int parDPeriod, int parSlowing, ENUM_MA_METHOD parMAMethod, ENUM_STO_PRICE parPrice)
{
	handle = iStochastic(parSymbol,parTimeframe,parKPeriod,parDPeriod,parSlowing,parMAMethod,parPrice);
	return(handle);
	
}

CDerivediStochastic::CDerivediStochastic(void)
{
	ArraySetAsSeries(signal,true);
}


double CDerivediStochastic::Signal(int parShift=0)
{
	CopyBuffer(handle,1,0,MAX_COPY,signal);
	double value = NormalizeDouble(signal[parShift],_Digits);
	return(value);
}

関連用語リンク集

MQL5FX関連の用語リンク集です。
当サイトでは、元々わからない言葉や概念に出くわしたら、すぐその言葉に立ち戻れるよう、かなり細かく内部リンクを張り巡らせており、多様な用語を網羅しています。

興味のある内容に直接アクセスし、疑問の解決にお役立ていただければと思います。

スポンサーリンク
Uncategorized
スポンサーリンク
シェアする
エムキューエルをフォローする
スポンサーリンク
【超入門】MQL5 でEAを作ろうブログ
タイトルとURLをコピーしました