[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 141

 

それだけで、うまくいきました。バッファを1つ設定したためと思われる。

#property indicator_buffers 1

 

すべて正しく実行されています。 確認したところ、正常に出力されました(スクリーンショットをお渡しできます)。

上乗せしたところ

#property  indicator_separate_window
#property  indicator_buffers 2
 

Помогите, плиз!!!

double Lots_simb[3];


if(( Lots_simb[0]*2)< Lots_simb[2]) // почему истина ?
{

Print("Lots_simb[0]*2=", Lots_simb[0]*2,"Lots_simb[2]=", Lots_simb[2]);
Open_Buy_otl( symb[0],( Lots_simb[2]/2- Lots_simb[0]));

return;

}

2009.07.10 06:57:09 newseason GBPJPY, M30: Lots_simb[0]*2=8.4  Lots_simb[2]=8.4
 
テスターのログに「Function not allowed in test mode」と表示された場合、どのような機能が許可されていないのかを知るにはどうしたらよいのでしょうか?
 
Dimoncheg писал(а)>>
皆さん、テスターのジャーナルに「Function is not allowed in test mode」と書かれていますが、どのような機能が禁止されているのか、どうやって知ることができるのでしょうか?

MetaTrader4での取引戦略のテストの特徴と限界」。

 

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

 

こんにちは、私は本当にいくつかの助けを必要としていますあるインジケータを元にEAを作りたいのですが、どうすればいいですか?はじめに、どんな指標でもそうですが、こういう線がありますよね。

SetIndexBuffer(0,ExtBullBuffer)を設定します。
SetIndexBuffer(1,ExtBull1Buffer)を設定します。
SetIndexBuffer(2,ExtBull2Buffer)を設定します。
SetIndexBuffer(3,ExtBull3Buffer)を設定します。
SetIndexBuffer(4,ExtBull4Buffer)を設定します。
SetIndexBuffer(5,ExtBull5Buffer)を設定します。
SetIndexBuffer(6,ExtBull6Buffer)を設定します。
SetIndexBuffer(7,ExtBull7Buffer)を設定します。
次にプログラム本体(int start()...)で、変数ExtBullBufferを計算する...EAを作りたいのでSetIndexBufferは必要ないのですが、これを外すとテスト中の変数ExtBullBufferが計算されない(テストの全ての時間枠で、0を生成している、とは言えない)のですが...。どうしたらいいのかアドバイスしてください。ありがとうございます。

 
Levchik >> :

こんにちは、私は本当にいくつかの助けを必要としていますあるインジケータを元にEAを作りたいのですが、どうすればいいですか?はじめに、どんな指標でもそうですが、こういう線がありますよね。

SetIndexBuffer(0,ExtBullBuffer)を設定します。
次にプログラム本体(int start()...)が来て、変数ExtBullBuffer...を計算します。EAを作りたいのでSetIndexBufferは必要ないのですが、これを外すとテスト中の変数ExtBullBufferが計算されない(テストの全ての時間枠で、0を生成している、とは言えない)のですが...。どうしたらいいのかアドバイスしてください。>> ありがとうございました。

インジケータバッファでは、バッファを(補助ではなく)インジケータとして宣言すると同時に、バッファは自動的に初期化されます。

他のプログラム(インジケータではない)では、バッファは ArrayResize(ExtBullBuffer,Bars) 関数で初期化される必要があります。

(バッファに明示的な名前がない場合 double ExtBullBuffer[1000]; )

また、初期化は、バッファに値を代入することになっている関数で行う必要があります。あなたの場合、int start()で。

 

皆さん、こんにちは。ビープ音が1回ではなく、10回出力されるように、または、次のローソク足が現れるまでシグナルがある誘導があるように、インジケーターのコードを修正する方法を教えていただけませんか?つまり、シグナルが発生したローソク足がずっと続くのです。電波は良いのですが、一度だけ・・・残念ながら夜間は聞こえません((( 事前にご意見をお聞かせください。

#property indicator_chart_window
#プロパティ indicator_buffers 5
#プロパティ indicator_color1 黄色
#property indicator_width1 2
#プロパティ indicator_color2 SkyBlue
#property indicator_width2 2
#property indicator_color3 トマト
#property indicator_width3 2

#property indicator_color4 ブルー
#property indicator_color5 レッド
#property indicator_width4 1
#property indicator_width5 1

//---- 入力パラメータ
extern int Price = 0; //価格(0-終値、1-始値、2-高値、3-安値、4-中値、5-終値、6-加重平均)に適用する。
extern int Length = 15; //NonLagMAの期間
extern inttern Displace = 0; //DispLace または Shift
extern double PctFilter = 0; //10進数のダイナミックフィルター
extern string note1 ="turn on Color: ln=1 ln&dot=2; off=0"。
extern int Color = 2; //カラーモード(1色)切替
extern int ColorBarBack = 0; //カラーモード用バーバック
extern double Deviation = 0; //上下の偏差値
extern string note2 ="turn on = 1; turn off = 0";
extern int AlertMode = 0; //ボックス警告スイッチ(0-off,1-on)
extern int WarningMode = 0; /サウンド警告スイッチ(0-off,1-on)
extern int SendEmail = 0;
extern string soundfile = "news.wav";
//---- インジケータ・バッファ
double MABuffer[];
double UpBuffer[];
double DnBuffer[];
double trend[];
double Del[];
double AvgDel[];
double updbuffer[];
double dndbuffer[];

double alfa[];
int i, Phase, Len, Cycle=4;
double Coeff, beta, t, Sum, Weight, g;
double pi = 3.1415926535;
bool UpTrendAlert=false、DownTrendAlert=false。
//+------------------------------------------------------------------+
//| カスタムインジケータ初期化関数
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(8)です。
SetIndexStyle(0,DRAW_LINE)を設定します。
SetIndexBuffer(0,MABuffer)を設定します。
SetIndexStyle(1,DRAW_LINE)を設定します。
SetIndexBuffer(1,UpBuffer)を設定します。
SetIndexStyle(2,DRAW_LINE)を設定します。
SetIndexBuffer(2,DnBuffer)を設定します。

SetIndexBuffer(5,trend)を設定します。
SetIndexBuffer(6,Del)を設定します。
SetIndexBuffer(7,AvgDel)を設定します。


SetIndexStyle(3,DRAW_ARROW); SetIndexArrow(3,159); SetIndexBuffer(3,updbuffer); SetIndexEmptyValue(3,EMPTY_VALUE) です。
SetIndexStyle(4,DRAW_ARROW); SetIndexArrow(4,159); SetIndexBuffer(4,dndbuffer); SetIndexEmptyValue(4,EMPTY_VALUE) です。


文字列のshort_name。
//---- インジケータ線

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
//---- DataWindowとインジケータサブウィンドウのラベル名
short_name="NonLagMA("+Length+") "です。
IndicatorShortName(short_name)。
SetIndexLabel(0, "NonLagMA")を設定します。
SetIndexLabel(1, "Up")を設定します。
SetIndexLabel(2, "Dn")を設定します。
//----
SetIndexShift(0,Displace)を設定します。
SetIndexShift(1,Displace)を設定します。
SetIndexShift(2,Displace)を設定。
SetIndexShift(3,Displace)を設定。
SetIndexShift(4,Displace)を設定。

SetIndexEmptyValue(0,EMPTY_VALUE)とする。
SetIndexEmptyValue(1,EMPTY_VALUE)を設定します。
SetIndexEmptyValue(2,EMPTY_VALUE)を設定。

SetIndexDrawBegin(0,Length*Cycle+Length+1)を設定します。
SetIndexDrawBegin(1,Length*Cycle+Length+1)を設定します。
SetIndexDrawBegin(2,Length*Cycle+Length+1)を設定。
//----

Coeff = 3*pi です。
位相=長さ-1です。
Len = Length*4 + Phase;
ArrayResize(alfa,Len)。
重量=0;

for (i=0;i<Len-1;i++)
{
if (i<=Phase-1) t = 1.0*i/(Phase-1);
else t = 1.0 + (i-Phase+1)*(2.0*Cycle-1.0)/(Cycle*Length-1.0);
beta = MathCos(pi*t);
g = 1.0/(Coeff*t+1) とする。
if (t <= 0.5 ) g = 1;
alfa[i] = g * beta;
Weight += alfa[i];
}

return(0)です。
}

//+------------------------------------------------------------------+
||NonLagMA_v7.1||NonLagMA_v7.1
//+------------------------------------------------------------------+
int start()
{
int i,shift, counted_bars=IndicatorCounted(),limit;
ダブルプライス
if ( counted_bars > 0 ) limit=Bars-counted_bars;
if ( counted_bars < 0 ) return(0);
if ( counted_bars ==0 ) limit=Bars-Len-1;
if ( counted_bars < 1 )

for(i=1;i<Length*Cycle+Length;i++)
{
MABuffer[Bars-i]=0;
UpBuffer[Bars-i]=0;
DnBuffer[Bars-i]=0;
}

for(shift=limit;shift>=0;shift--)とする。
{
Sum = 0;
for (i=0;i<=Len-1;i++)
{
price = iMA(NULL,0,1,0,3,Price,i+shift);
Sum += alfa[i]*price;

}

if (Weight > 0) MABuffer[shift] = (1.0+Deviation/100)*Sum/Weight;


if (PctFilter>0)
{
Del[shift] = MathAbs(MABuffer[shift] - MABuffer[shift+1])とする。

double sumdel=0;
for (i=0;i<=Length-1;i++) sumdel = sumdel+Del[shift+i];
AvgDel[shift] = sumdel/Length;

double sumpow = 0;
for (i=0;i<=Length-1;i++) sumpow+=MathPow(Del[shift+i]-AvgDel[shift+i],2)。
double StdDev = MathSqrt(sumpow/Length)。

double Filter = PctFilter * StdDev;

if( MathAbs(MABuffer[shift]-MABuffer[shift+1]) < Filter ) MABuffer[shift]=MABuffer[shift+1];
}
さもなくば
Filter=0です。

if (カラー>0)
{
trend[shift]=trend[shift+1]とする。
if (MABuffer[shift]-MABuffer[shift+1] > Filter) trend[shift]= 1;
if (MABuffer[shift+1]-MABuffer[shift] > Filter) trend[shift]=-1;

updbuffer[shift] = EMPTY_VALUE; dndbuffer[shift] = EMPTY_VALUE;

if (トレンド[シフト]>0)
{
UpBuffer[shift] = MABuffer[shift];
if (trend[shift+ColorBarBack]<0)UpBuffer[shift+ColorBarBack]=MABuffer[shift+ColorBarBack]。
DnBuffer[shift] = EMPTY_VALUE;
if (trend[shift+1]<0&Color>1) updbuffer[shift]= MABuffer[shift];
}
if (トレンド[シフト]<0)
{
DnBuffer[shift] = MABuffer[shift]。
if (トレンド[shift+ColorBarBack]>0) DnBuffer[shift+ColorBarBack]=MABuffer[shift+ColorBarBack];
UpBuffer[shift] = EMPTY_VALUE;
if (trend[shift+1]>0&Color>1) dndbuffer[shift]= MABuffer[shift];

}
}
}
//----------
文字列 メッセージ

if ( トレンド[2]<0 && トレンド[1]>0 && ボリューム[0]>1 && !UpTrendAlert)
{
Message = ""+Symbol()+" M "+Period()+" NonLagMa Signal for BUY"";
if ( AlertMode>0 ) Alert (Message);
if ( WarningMode>0 ) PlaySound(soundfile);
if ( SendEmail>0 ) SendMail("NonLagMa", "UpTrendAlert");
UpTrendAlert=true、DownTrendAlert=false。
}

if ( trend[2]>0 && trend[1]<0 && Volume[0]>1 && !DownTrendAlert)
{
Message = ""+Symbol()+" M "+Period()+" NonLagMa Signal for SELL"" メッセージが表示されます。
if ( AlertMode>0 ) Alert (Message);
if ( WarningMode>0 ) PlaySound(soundfile);
if ( SendEmail>0 ) SendMail("NonLagMa", "DownTrendAlert")を送信。
DownTrendAlert=true、UpTrendAlert=false。
}
//----
return(0)です。
}

 
E_mc2 >> :

皆さん、こんにちは。ビープ音が1回表示された後、10回表示されない、または次のキャンドルまでの合図が表示されるindyukiがあるので、コードの修正方法をアドバイスしてください。つまり、シグナルが発生したローソク足がずっと続くのです。電波は良いのですが、一度だけ... 残念ながら、夜間は聞こえない時があります(( 助けてくださる方に、前もって感謝します。

何のために必要なのか?もっと詳しく教えてください。もしかしたら解決策があるかもしれないのに、人々が理解できるような正しい質問の仕方を知らないのかもしれません。

あなたが書いたことについて、私は2つの解決策を持っています、あなたは何を、一度に2つの書くには長すぎる)

..

ちなみに、このような長いコードはファイルとして添付するのがベターです。

そして、コードについては、専用のボタンSRCがあります。