Norioman Eiji
08-05-2008 22:08, 10:08 PM
私はEAでEMA Crossover Signalインジケータを使用しようとしており、そこから値を取得するのに問題があります。私はiCustom()を使用していますが、どのモードを選択しても(0または1)、インジケータは2147483647しか返しません。
ここに私がしようとしていることの例があります:
ダブルEMA = iCustom(NULL、0、EMAクロスオーバ信号、5,13、偽、0,0);
印刷(EMA);
インディーコードはここにあります:
// ----------------------------------------------- -------------------
//| EMA-Crossover_Signal.mq4 |
//|著作権©2005、ジェイソンロビンソン(jnrtrading)|
//|
http://www.jnrtading.co.uk|
// ----------------------------------------------- -------------------
/*
------------------------------------------------- -----------------
|あなたは2つのエマ期間を入力することができます。
|彼らがどこを越えたのかそれはより短い|
|バーや燭台によって覆われている期間、|
|ズームレベルは切れています。またemasを削除することもできます。
|チャートから。 (emasは最初に5と6に設定されています)|
------------------------------------------------- -----------------
*
#property copyright著作権©2005、Jason Robinson(jnrtrading)
#property link http://www.jnrtrading.co.uk
#property indior_chart_window
#property indior_buffers 2
#property indior_color1 SeaGreen
#property indior_color2 Red
ダブルCrossUp [];
ダブルCrossDown [];
extern int FasterEMA = 5;
extern int SlowerEMA = 13;
extern bool SoundON = false;
ダブルアラートタグ;
ダブルコントロール= 2147483647;
// ----------------------------------------------- -------------------
//|カスタムインジケータ初期化関数|
// ----------------------------------------------- -------------------
int init()
{
//----インジケータ
SetIndexStyle(0、DRAW_ARROW、EMPTY、3);
SetIndexArrow(0、233);
SetIndexBuffer(0、CrossUp);
SetIndexStyle(1、DRAW_ARROW、EMPTY、3);
SetIndexArrow(1、234);
SetIndexBuffer(1、CrossDown);
//----
return(0);
}
// ----------------------------------------------- -------------------
//|カスタムインジケータの初期化解除機能|
// ----------------------------------------------- -------------------
int deinit()
{
//----
//----
return(0);
}
// ----------------------------------------------- -------------------
//|カスタムインジケータ反復関数|
// ----------------------------------------------- -------------------
int start(){
int limit、私、カウンタ;
すぐに遅く、遅くEMAnow、遅いEMAnow、遅いEMA前、遅いEMA、
double Range、AvgRange;
int counted_bars = IndiorCounted();
//----可能なエラーをチェックする
if(counted_barslt; 0)は、(-1)を返します。
//----最後にカウントされたバーが再計算されます
if(counted_barsgt; 0)counted_bars--;
limit = Bars-counted_bars;
for(i = 0; i lt; = limit; i ){
カウンタ= i;
範囲= 0;
AvgRange = 0;
for(counter = i; counterlt; = i 9; counter )
{
AvgRange = AvgRange MathAbs(高[カウンタ] - 低[カウンタ]);
}
範囲=平均距離/10;
fasterEMAnow = iMA(NULL、0、FasterEMA、0、MODE_EMA、PRICE_CLOSE、i);
より速いEMAprevious = iMA(NULL、0、FasterEMA、0、MODE_EMA、PRICE_CLOSE、i 1);
fastEMAafter = iMA(NULL、0、FasterEMA、0、MODE_EMA、PRICE_CLOSE、i-1);
slowerEMAnow = iMA(NULL、0、SlowerEMA、0、MODE_EMA、PRICE_CLOSE、i);
slowerEMAprevious = iMA(NULL、0、SlowerEMA、0、MODE_EMA、PRICE_CLOSE、i 1);
slowerEMAafter = iMA(NULL、0、SlowerEMA、0、MODE_EMA、PRICE_CLOSE、i-1);
if((高速EMAnow gt; slowerEMAnow)(fasterEMAprevious lt; slowerEMAprevious)(より速いEMAの後、slowerEMAafter)){
CrossUp [i] = Low [i] - 範囲* 0.5;
}
else if((fasterEMAnow lt; slowerEMAnow)(より速いEMAprevious gt; slowerEMAprevious)(より速いEMAより遅いEMAafter)){
CrossDown [i] = High [i] Range * 0.5;
}
if(SoundON == true i == 1 CrossUp [i] gt; CrossDown [i] alertTag!= Time [0]){
アラート(EMAクロストレンド、Symbol()、Period());
alertTag =時刻[0];
}
if(SoundON == true i == 1 CrossUp [i] lt; CrossDown [i] alertTag!= Time [0]){
アラート(EMAクロストレンド、Symbol()、Period());
alertTag =時刻[0];
}
}
return(0);
}
ここに私がしようとしていることの例があります:
ダブルEMA = iCustom(NULL、0、EMAクロスオーバ信号、5,13、偽、0,0);
印刷(EMA);
インディーコードはここにあります:
// ----------------------------------------------- -------------------
//| EMA-Crossover_Signal.mq4 |
//|著作権©2005、ジェイソンロビンソン(jnrtrading)|
//|
http://www.jnrtading.co.uk|
// ----------------------------------------------- -------------------
/*
------------------------------------------------- -----------------
|あなたは2つのエマ期間を入力することができます。
|彼らがどこを越えたのかそれはより短い|
|バーや燭台によって覆われている期間、|
|ズームレベルは切れています。またemasを削除することもできます。
|チャートから。 (emasは最初に5と6に設定されています)|
------------------------------------------------- -----------------
*
#property copyright著作権©2005、Jason Robinson(jnrtrading)
#property link http://www.jnrtrading.co.uk
#property indior_chart_window
#property indior_buffers 2
#property indior_color1 SeaGreen
#property indior_color2 Red
ダブルCrossUp [];
ダブルCrossDown [];
extern int FasterEMA = 5;
extern int SlowerEMA = 13;
extern bool SoundON = false;
ダブルアラートタグ;
ダブルコントロール= 2147483647;
// ----------------------------------------------- -------------------
//|カスタムインジケータ初期化関数|
// ----------------------------------------------- -------------------
int init()
{
//----インジケータ
SetIndexStyle(0、DRAW_ARROW、EMPTY、3);
SetIndexArrow(0、233);
SetIndexBuffer(0、CrossUp);
SetIndexStyle(1、DRAW_ARROW、EMPTY、3);
SetIndexArrow(1、234);
SetIndexBuffer(1、CrossDown);
//----
return(0);
}
// ----------------------------------------------- -------------------
//|カスタムインジケータの初期化解除機能|
// ----------------------------------------------- -------------------
int deinit()
{
//----
//----
return(0);
}
// ----------------------------------------------- -------------------
//|カスタムインジケータ反復関数|
// ----------------------------------------------- -------------------
int start(){
int limit、私、カウンタ;
すぐに遅く、遅くEMAnow、遅いEMAnow、遅いEMA前、遅いEMA、
double Range、AvgRange;
int counted_bars = IndiorCounted();
//----可能なエラーをチェックする
if(counted_barslt; 0)は、(-1)を返します。
//----最後にカウントされたバーが再計算されます
if(counted_barsgt; 0)counted_bars--;
limit = Bars-counted_bars;
for(i = 0; i lt; = limit; i ){
カウンタ= i;
範囲= 0;
AvgRange = 0;
for(counter = i; counterlt; = i 9; counter )
{
AvgRange = AvgRange MathAbs(高[カウンタ] - 低[カウンタ]);
}
範囲=平均距離/10;
fasterEMAnow = iMA(NULL、0、FasterEMA、0、MODE_EMA、PRICE_CLOSE、i);
より速いEMAprevious = iMA(NULL、0、FasterEMA、0、MODE_EMA、PRICE_CLOSE、i 1);
fastEMAafter = iMA(NULL、0、FasterEMA、0、MODE_EMA、PRICE_CLOSE、i-1);
slowerEMAnow = iMA(NULL、0、SlowerEMA、0、MODE_EMA、PRICE_CLOSE、i);
slowerEMAprevious = iMA(NULL、0、SlowerEMA、0、MODE_EMA、PRICE_CLOSE、i 1);
slowerEMAafter = iMA(NULL、0、SlowerEMA、0、MODE_EMA、PRICE_CLOSE、i-1);
if((高速EMAnow gt; slowerEMAnow)(fasterEMAprevious lt; slowerEMAprevious)(より速いEMAの後、slowerEMAafter)){
CrossUp [i] = Low [i] - 範囲* 0.5;
}
else if((fasterEMAnow lt; slowerEMAnow)(より速いEMAprevious gt; slowerEMAprevious)(より速いEMAより遅いEMAafter)){
CrossDown [i] = High [i] Range * 0.5;
}
if(SoundON == true i == 1 CrossUp [i] gt; CrossDown [i] alertTag!= Time [0]){
アラート(EMAクロストレンド、Symbol()、Period());
alertTag =時刻[0];
}
if(SoundON == true i == 1 CrossUp [i] lt; CrossDown [i] alertTag!= Time [0]){
アラート(EMAクロストレンド、Symbol()、Period());
alertTag =時刻[0];
}
}
return(0);
}