コーディングのヘルプ - ページ 198 1...191192193194195196197198199200201202203204205...786 新しいコメント Mladen Rakic 2013.11.17 07:44 #1971 cain82: ご回答ありがとうございました。 しかし、このIndi hystogrammコードのように、一般的なチャート上でMAの角度線を得るにはどうしたらよいでしょうか? //---- indicator settings #property indicator_separate_window #property indicator_buffers 3 #property indicator_color1 LimeGreen #property indicator_color2 FireBrick #property indicator_color3 Yellow #property indicator_width1 2 #property indicator_width2 2 #property indicator_width3 2 //---- indicator parameters extern int TimeFrame = 60; extern int MAMode = 0; extern int MAPeriod = 50; extern int Price = 4; extern double AngleTreshold = 0.25; extern int StartMAShift = 2; extern int EndMAShift = 0; extern int MaxBars = 500; string TF1; //---- indicator buffers double UpBuffer[]; double DownBuffer[]; double ZeroBuffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- 2 additional buffers are used for counting. IndicatorBuffers(3); //---- drawing settings SetIndexStyle(0,DRAW_HISTOGRAM); SetIndexStyle(1,DRAW_HISTOGRAM); SetIndexStyle(2,DRAW_HISTOGRAM); IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2 ); //---- 3 indicator buffers mapping if(!SetIndexBuffer(0,UpBuffer) && !SetIndexBuffer(1,DownBuffer) && !SetIndexBuffer(2,ZeroBuffer)) Print("cannot set indicator buffers!"); SetIndexLabel(0,""); SetIndexLabel(1,""); SetIndexLabel(2,""); switch(TimeFrame) { case 1: TF1="M1"; break; case 5: TF1="M5"; break; case 15: TF1="M15"; break; case 30: TF1="M30"; break; case 60: TF1="H1"; break; case 240: TF1="H4"; break; case 1440: TF1="D1"; break; case 10080: TF1="W1"; break; case 43200: TF1="MN1"; break; default: {TimeFrame = Period(); init(); return(0);} } IndicatorShortName("MAAngle MTF * "+TF1+" *"); //---- initialization done return(0); } //+------------------------------------------------------------------+ //| The angle for EMA | //+------------------------------------------------------------------+ int start() { double fEndMA, fStartMA; double fAngle, mFactor, dFactor; int nLimit, i; int nCountedBars; double angle; int ShiftDif; string Sym; if (MAMode >= 4) MAMode = 0; if(EndMAShift >= StartMAShift) { Print("Error: EndMAShift >= StartMAShift"); StartMAShift = 6; EndMAShift = 0; } nCountedBars = IndicatorCounted(); dFactor = 2*3.14159/180.0; mFactor = 10000.0; Sym = StringSubstr(Symbol(),3,3); if (Sym == "JPY") mFactor = 100.0; ShiftDif = StartMAShift-EndMAShift; mFactor /= ShiftDif; //---- check for possible errors if(nCountedBars<0) return(-1); //---- last counted bar will be recounted if(nCountedBars>0) nCountedBars--; nLimit=Bars-nCountedBars; nLimit=MathMax(nLimit,TimeFrame/Period()); nLimit=MathMin(nLimit,MaxBars ); //---- main loop for(i=0; i<nLimit; i++) { int y = iBarShift(NULL,TimeFrame,Time); if (TimeFrame<Period()) TimeFrame=Period(); fEndMA=iMA(NULL,TimeFrame,MAPeriod,0,MAMode,Price,y+EndMAShift); fStartMA=iMA(NULL,TimeFrame,MAPeriod,0,MAMode,Price,y+StartMAShift); // 10000.0 : Multiply by 10000 so that the fAngle is not too small // for the indicator Window. fAngle = mFactor * (fEndMA - fStartMA)/2.0; //fAngle = MathArctan(fAngle)/dFactor; DownBuffer = 0.0; UpBuffer = 0.0; ZeroBuffer = 0.0; if(fAngle > AngleTreshold) UpBuffer = fAngle; else if (fAngle < -AngleTreshold) DownBuffer = fAngle; else ZeroBuffer = fAngle; } return(0); } //+------------------------------------------------------------------+ このインジケータは、MAの各バーについて、傾きに似たものを計算しています(角度ではありません。 最後のバーの傾きを拡張したい場合は、最後のバーの傾きを使用して移動平均を拡張するこのインジケータhttps://www.mql5.com/en/forum/173235/page36 のようなものを使用することができます。 Cainah 2013.11.17 08:02 #1972 mladen: そのインジケータは、MAの各バーについて、傾きに似たもの(角度ではありません、時系列チャートでは角度は正確に計算できないからです、傾きに必要なものとは異なる計算を使おうとしているからです)を計算しています。 もし、それを反転させたいなら(私はあなたが何をしたいのか正確に推測するだけですが)、結果としてその開始MAを取得しようとしています(だからあなたはチャート上で移動平均を取得しようとしています)。 もし、最後のバーの傾きを拡張したいのであれば、このインジケータに似たものを使うことができます。https://www.mql5.com/en/forum/173235/page36、最後のバーの傾きを使って移動平均を拡張します。 mladenさん、ありがとうございます。それは私が欲しいものに非常に似ています。 MTFモードでも同じようなことができますか? ryuma 2013.11.17 10:25 #1973 mladen... このインジケータを修正するためにあなたの助けが必要ですhttps://www.mql5.com/en/forum/general Antonsak 2013.11.17 18:03 #1974 ムラデン 移動平均の データを使ってBBandsを計算する。 MT4非標準の仕込みに適用する例として。 AllAveragesの移動平均の種類の1つの例として。 平均の実データを利用したBBandsです。 BBands SMAはなく、別タイプの移動平均を使用。 Mladen Rakic 2013.11.17 18:13 #1975 Antonsan: ムラデン移動平均のデータを使ってBBandsを計算する。 MT4非標準の仕込みに適用する例として。 AllAveragesの移動平均の種類の1つの例として。 平均の実データを利用したBBandsです。 BBands SMA はなく、別のタイプの移動平均を使用します。 アントンサン iStdDevOnArry()関数を使用すれば、任意の値でボリンジャーバンドを 計算できます。 iStdDevOnArray()で偏差を計算し、iMaOnArray()でボリンジャーバンドの中間線を計算します(iStrDevOnArry()と同じ配列を使用します)。 Mladen Rakic 2013.11.17 18:49 #1976 アントンサン このサンプルコードをテンプレートとして使用し、任意の値のボリンジャーバンドを 構築することができます。この行のiRsi()の呼び出しを置き換えるだけです。 for(i=limit; i >= 0; i--) value = iRSI(NULL,0,RsiLength,RsiPrice,i).For(i=limit; i >= 0; i--) value = iRSI(NULL,0,RsiLength,RsiPrice,i); を任意の関数、または任意のカスタムインジケータのiCustom()コールで置き換えると、その値に対してボリンジャーバンドを計算することができます。 ファイル: simple_bb_of_rsi.mq4 2 kb metrus 2013.11.18 10:02 #1977 mladen: person77 オプションが1つ追加されました。AllowCloseEqualOpen.を追加しましたので、このオプションで制御できるようになりました。 素晴らしい作品mlanden! またよろしくお願いします。 bamik 2013.11.21 12:53 #1978 EAに適したインジケーター こんにちは。 このインジケータは5つのライン(pivot+R1+R2+S1+S2)を持っています。 このラインをベースにしたEAを作りたいのですが、残念ながらこれらのラインにはバッファがありません。残念ながら、これらのラインにはバッファがありません。各ラインにバッファを割り当てる必要があります。 よろしくお願いします。 よろしくお願いします。 Bamik ファイル: target_lines.zip 2 kb Mladen Rakic 2013.11.21 13:59 #1979 bamik: こんにちは。このインジケータは5つのライン(pivot+R1+R2+S1+S2)を持っています。 このラインをベースにしたEAを作りたいのですが、残念ながらこれらのラインにはバッファがありません。残念ながら、これらのラインにはバッファがありません。各ラインにバッファを割り当てる必要があります。 よろしくお願いします。 よろしくお願いします。 Bamik バルニック このスレッドをチェックしましたか?https://www.mql5.com/en/forum/172894 そのスレッドではバッファを使用したピボットインディケーターがたくさんあります。 bamik 2013.11.22 04:57 #1980 mladen: バルニックこのスレッドを確認しましたか :https://www.mql5.com/en/forum/172894 バッファを使ったピボットインディケーターは、このスレッドにたくさんあります。 ディアmladenさん、ありがとうございました。 AutoPivotIndicator_ver5」だけは「TARGETS-LINES」と同じような感じで、ダウンロードし、テストしました。 残念ながら、このインジケーターもバッファを使用せず、オブジェクトを使用しています。 私の簡単なインジケータ(各行にバッファを割り当てる)を変更していただけませんか。 ありがとうございました。 1...191192193194195196197198199200201202203204205...786 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ご回答ありがとうございました。
しかし、このIndi hystogrammコードのように、一般的なチャート上でMAの角度線を得るにはどうしたらよいでしょうか?
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 LimeGreen
#property indicator_color2 FireBrick
#property indicator_color3 Yellow
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
//---- indicator parameters
extern int TimeFrame = 60;
extern int MAMode = 0;
extern int MAPeriod = 50;
extern int Price = 4;
extern double AngleTreshold = 0.25;
extern int StartMAShift = 2;
extern int EndMAShift = 0;
extern int MaxBars = 500;
string TF1;
//---- indicator buffers
double UpBuffer[];
double DownBuffer[];
double ZeroBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- 2 additional buffers are used for counting.
IndicatorBuffers(3);
//---- drawing settings
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexStyle(2,DRAW_HISTOGRAM);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2 );
//---- 3 indicator buffers mapping
if(!SetIndexBuffer(0,UpBuffer) &&
!SetIndexBuffer(1,DownBuffer) &&
!SetIndexBuffer(2,ZeroBuffer))
Print("cannot set indicator buffers!");
SetIndexLabel(0,"");
SetIndexLabel(1,"");
SetIndexLabel(2,"");
switch(TimeFrame)
{
case 1: TF1="M1"; break;
case 5: TF1="M5"; break;
case 15: TF1="M15"; break;
case 30: TF1="M30"; break;
case 60: TF1="H1"; break;
case 240: TF1="H4"; break;
case 1440: TF1="D1"; break;
case 10080: TF1="W1"; break;
case 43200: TF1="MN1"; break;
default: {TimeFrame = Period(); init(); return(0);}
}
IndicatorShortName("MAAngle MTF * "+TF1+" *");
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| The angle for EMA |
//+------------------------------------------------------------------+
int start()
{
double fEndMA, fStartMA;
double fAngle, mFactor, dFactor;
int nLimit, i;
int nCountedBars;
double angle;
int ShiftDif;
string Sym;
if (MAMode >= 4) MAMode = 0;
if(EndMAShift >= StartMAShift)
{
Print("Error: EndMAShift >= StartMAShift");
StartMAShift = 6;
EndMAShift = 0;
}
nCountedBars = IndicatorCounted();
dFactor = 2*3.14159/180.0;
mFactor = 10000.0;
Sym = StringSubstr(Symbol(),3,3);
if (Sym == "JPY") mFactor = 100.0;
ShiftDif = StartMAShift-EndMAShift;
mFactor /= ShiftDif;
//---- check for possible errors
if(nCountedBars<0) return(-1);
//---- last counted bar will be recounted
if(nCountedBars>0) nCountedBars--;
nLimit=Bars-nCountedBars;
nLimit=MathMax(nLimit,TimeFrame/Period());
nLimit=MathMin(nLimit,MaxBars );
//---- main loop
for(i=0; i<nLimit; i++)
{
int y = iBarShift(NULL,TimeFrame,Time);
if (TimeFrame<Period()) TimeFrame=Period();
fEndMA=iMA(NULL,TimeFrame,MAPeriod,0,MAMode,Price,y+EndMAShift);
fStartMA=iMA(NULL,TimeFrame,MAPeriod,0,MAMode,Price,y+StartMAShift);
// 10000.0 : Multiply by 10000 so that the fAngle is not too small
// for the indicator Window.
fAngle = mFactor * (fEndMA - fStartMA)/2.0;
//fAngle = MathArctan(fAngle)/dFactor;
DownBuffer = 0.0;
UpBuffer = 0.0;
ZeroBuffer = 0.0;
if(fAngle > AngleTreshold)
UpBuffer = fAngle;
else if (fAngle < -AngleTreshold)
DownBuffer = fAngle;
else ZeroBuffer = fAngle;
}
return(0);
}
//+------------------------------------------------------------------+
このインジケータは、MAの各バーについて、傾きに似たものを計算しています(角度ではありません。
最後のバーの傾きを拡張したい場合は、最後のバーの傾きを使用して移動平均を拡張するこのインジケータhttps://www.mql5.com/en/forum/173235/page36 のようなものを使用することができます。
そのインジケータは、MAの各バーについて、傾きに似たもの(角度ではありません、時系列チャートでは角度は正確に計算できないからです、傾きに必要なものとは異なる計算を使おうとしているからです)を計算しています。 もし、それを反転させたいなら(私はあなたが何をしたいのか正確に推測するだけですが)、結果としてその開始MAを取得しようとしています(だからあなたはチャート上で移動平均を取得しようとしています)。 もし、最後のバーの傾きを拡張したいのであれば、このインジケータに似たものを使うことができます。https://www.mql5.com/en/forum/173235/page36、最後のバーの傾きを使って移動平均を拡張します。
mladenさん、ありがとうございます。それは私が欲しいものに非常に似ています。
MTFモードでも同じようなことができますか?
mladen...
このインジケータを修正するためにあなたの助けが必要ですhttps://www.mql5.com/en/forum/general
ムラデン
移動平均の データを使ってBBandsを計算する。
MT4非標準の仕込みに適用する例として。
AllAveragesの移動平均の種類の1つの例として。
平均の実データを利用したBBandsです。
BBands SMAはなく、別タイプの移動平均を使用。
ムラデン
移動平均のデータを使ってBBandsを計算する。
MT4非標準の仕込みに適用する例として。
AllAveragesの移動平均の種類の1つの例として。
平均の実データを利用したBBandsです。
BBands SMA はなく、別のタイプの移動平均を使用します。アントンサン
iStdDevOnArry()関数を使用すれば、任意の値でボリンジャーバンドを 計算できます。
iStdDevOnArray()で偏差を計算し、iMaOnArray()でボリンジャーバンドの中間線を計算します(iStrDevOnArry()と同じ配列を使用します)。
アントンサン
このサンプルコードをテンプレートとして使用し、任意の値のボリンジャーバンドを 構築することができます。この行のiRsi()の呼び出しを置き換えるだけです。
for(i=limit; i >= 0; i--) value = iRSI(NULL,0,RsiLength,RsiPrice,i).For(i=limit; i >= 0; i--) value = iRSI(NULL,0,RsiLength,RsiPrice,i);
を任意の関数、または任意のカスタムインジケータのiCustom()コールで置き換えると、その値に対してボリンジャーバンドを計算することができます。
person77 オプションが1つ追加されました。AllowCloseEqualOpen.を追加しましたので、このオプションで制御できるようになりました。
素晴らしい作品mlanden! またよろしくお願いします。
EAに適したインジケーター
こんにちは。
このインジケータは5つのライン(pivot+R1+R2+S1+S2)を持っています。
このラインをベースにしたEAを作りたいのですが、残念ながらこれらのラインにはバッファがありません。残念ながら、これらのラインにはバッファがありません。各ラインにバッファを割り当てる必要があります。
よろしくお願いします。
よろしくお願いします。
Bamik
こんにちは。
このインジケータは5つのライン(pivot+R1+R2+S1+S2)を持っています。
このラインをベースにしたEAを作りたいのですが、残念ながらこれらのラインにはバッファがありません。残念ながら、これらのラインにはバッファがありません。各ラインにバッファを割り当てる必要があります。
よろしくお願いします。
よろしくお願いします。
Bamikバルニック
このスレッドをチェックしましたか?https://www.mql5.com/en/forum/172894
そのスレッドではバッファを使用したピボットインディケーターがたくさんあります。
バルニック
このスレッドを確認しましたか :https://www.mql5.com/en/forum/172894
バッファを使ったピボットインディケーターは、このスレッドにたくさんあります。ディアmladenさん、ありがとうございました。
AutoPivotIndicator_ver5」だけは「TARGETS-LINES」と同じような感じで、ダウンロードし、テストしました。
残念ながら、このインジケーターもバッファを使用せず、オブジェクトを使用しています。
私の簡単なインジケータ(各行にバッファを割り当てる)を変更していただけませんか。
ありがとうございました。