コーディングのヘルプ - ページ 258

 
Tomcat98:
Mladenさん、皆さん、こんにちは。

呪われた新しいBuild!

B625で新しい警告が出た。

「'OrderSelect'の戻り値を確認する必要があります。

という警告が出ました。

"OrderSelect(i,SELECT_BY_POS,MODE_TRADES);" です。

どのようにそれを修正するのですか?

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

トムキャット98

トムキャット98

次のようにしてください。

グローバルなブール変数を1つ宣言する(例えば、こんな感じ) :

bool dummyResultを宣言します。

そして、OrderSelectの前に "dummyResult ="を置くだけで、以下のようになります。

dummyResult = OrderSelect(i,SELECT_BY_POS,MODE_TRADES) となります。

 
Tomcat98:
Mladenさん、皆さん、こんにちは。

呪われた新しいBuild!

B625で新しい警告が出た。

「'OrderSelect'の戻り値を確認する必要があります。

という警告が出ました。

"OrderSelect(i,SELECT_BY_POS,MODE_TRADES);" です。

どのようにそれを修正するのですか?

皆さん、ありがとうございます。

トムキャット98

まあ、多少の労力を代償に、取り除くことはできます。

しかし、私は永久に警告が表示され、どのような方法でも取り除く ことができません(ソースコードの行を削除する以外)。

struct Empty {};[/CODE]

results in

[CODE]! struct has no members, size assigned to 1 byte

これは、もし私がそれをDLL呼び出しのためのスーパータイプとしてのみ使用する場合、役に立たない情報です(私は空の構造体の他の使用法を知りません)。

 

Mladenさん、こんにちは。

はい、うまくいきました。

素晴らしい仕事です。

あなたの助けにとても感謝します。

敬具。

Tomcat98

 

皆さん、こんにちは。

数日前から、私のEAで使用しているインジケータの1つで、以下のエラーが散発的に発生するようになりました。

2014.04.10 09:01:49.533 2014.01.08 03:45 Access violation write to 0xFFFFFFFE in 'C:\Users...\AppDataRoaming↪MetaQuotes↩Terminal゙D5AE2430FC68F628F143CA9XXXXMQL4indicators゙MyDailyFibo.ex4'

MT Version 4を使用しています。ビルド625

この問題の根本的な原因を見つけるために、私を助けてください。インジケーターを調べる必要があれば教えてください。常に表示されるわけではなく、非常に頻繁に表示されるのですが・・・。

よろしくお願いします。

Antony

 
Antony1:
こんにちは、皆さん。

数日前からEAで使っているインジケーターで以下のエラーが散発的に発生しています。

2014.04.10 09:01:49.533 2014.01.08 03:45 Access violation write to 0xFFFFFFFE in 'C:\Users...\AppDataRoaming↪MetaQuotes↩Terminal゙D5AE2430FC68F628F143CA9XXXXMQL4indicators゙MyDailyFibo.ex4'

MT Version 4を使用しています。ビルド625

この問題の根本的な原因を見つけるために、私を助けてください。インジケーターを調べる必要があれば教えてください。常に表示されるわけではなく、非常に頻繁に表示されるのですが・・・。

よろしくお願いします。

アントニー

Antony

それはあなたのインジケータの問題ではありません。

新しいメタトレーダー4の問題です(適切なメモリ割り当てとアクセスに問題があります - ビルド628は少し良くなっていますが、それほどでもありません)。

 

こんにちは。

私が書こうとしていたこのインジケータ(Wilder trailing stop candles MTF)について、助けが必要です。

最初の問題:私のインジケータは、その1があるべきの1小節前に買いシグナルを描画します。

2つ目の問題:色が合わない。おそらく、この部分のバッファをいじったのだと思うが、自分で文字化けしてしまい、修正できない。:

if (UpLineBuffer!=EMPTY_VALUE)

{

UpBodyBuffer = High;

DnBodyBuffer = Low;

UpWickBuffer = MathMax(Open,Close);

DnWickBuffer = MathMin(Open,Close);

}

else

{

DnBodyBuffer = High;

UpBodyBuffer = Low;

DnWickBuffer = MathMax(Open,Close);

UpWickBuffer = MathMin(Open,Close);

ワイルダーズ_トレイリング_ストップ_キャンドル_mtf.mq4

ワイルドアーズ_トレイリングストップ_mtf_1.mq4

ワイルダーズ_トレイリングストップ.mq4

 
thefxpros:
こんにちは。

私が書こうとしていたこのインジケータ(Wilder trailing stop candles MTF)に助けが必要です。

最初の問題:私のインジケータは、その1があるべきの1小節前に買いシグナルを描画します。

2つ目の問題:色が合わない。おそらく、この部分のバッファをいじったのだと思うが、自分で文字化けしてしまい、修正できない。:

if (UpLineBuffer!=EMPTY_VALUE)

{

UpBodyBuffer = High;

DnBodyBuffer = Low;

UpWickBuffer = MathMax(Open,Close);

DnWickBuffer = MathMin(Open,Close);

}

else

{

DnBodyBuffer = High;

UpBodyBuffer = Low;

DnWickBuffer = MathMax(Open,Close);

UpWickBuffer = MathMin(Open,Close);

ワイルダーズ_トレイリング_ストップ_キャンドル_mtf.mq4

ワイルドアーズ_トレイリングストップ_mtf_1.mq4

ワイルダーズ_トレイリング_ストップ.mq4

うーん、色が合いますね。もしかして、最初にwickbuffersを書いて、次にbodybuffersを書かないといけないのでしょうか?

 
thefxpros:
うーん、色が合いますね。多分、最初にwickbuffersを書き、次にbodybuffersを書く必要があるのでしょうか?

thefxpros

最も簡単な方法は、Wilders Trailing Stop インジケータを変更することです(そうしないと、いくつかの複雑な if then else 構造に巻き込まれることになります)。ここでは、内部バッファに「トレンド」を指定したバージョンを紹介します。これが1の場合、トレンドは上昇し、-1の場合、トレンドは下降します。このインジケータをオリジナルの代わりに使用し、単にバッファ4の値を読み取るだけです - その後は、すべてが簡単です。

 
mladen:
thefxpros 最も簡単な方法は、Wildersのトレーリングストップのインジケータを変更することです(そうしないと、いくつかの複雑なif then elseの構造に巻き込まれます)。ここに、あなたが欲しい内部バッファが1つあるバージョンがあります:トレンド。これが1の場合、トレンドは上昇し、-1の場合、トレンドは下降します。このインジケータをオリジナルの代わりに使用し、単にバッファ4の値を読み取るだけです - その後はすべて簡単です。

こんな感じ?

//------------------------------------------------------------------

#property copyright "thefxpros"

#property link "thefxpros@katamail.com"

//------------------------------------------------------------------

#property indicator_chart_window

#property indicator_buffers 4

#property indicator_color1 LimeGreen

#property indicator_color2 Orange

#property indicator_color3 DarkGreen

#property indicator_color4 FireBrick

#property indicator_width1 1

#property indicator_width2 2

//

//

//

extern int TimeFrame = 0;

extern int Length = 2;

extern double Coeff = 1.75;

extern color UpBodyColor = LimeGreen;

extern color DnBodyColor = Orange;

extern color UpWickColor = DarkGreen;

extern color DnWickColor = FireBrick;

extern int WickWidth = 1;

extern int BodyWidth = 2;

//

double UpBodyBuffer[];

double DnBodyBuffer[];

double UpWickBuffer[];

double DnWickBuffer[];

double TrendBuffer[];

//+------------------------------------------------------------------+

//| |

//+------------------------------------------------------------------+

int init()

{

IndicatorBuffers(6);

SetIndexBuffer(0,UpWickBuffer); SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, WickWidth, UpWickColor);

SetIndexBuffer(1,DnWickBuffer); SetIndexStyle(1,DRAW_HISTOGRAM, EMPTY, WickWidth, DnWickColor);

SetIndexBuffer(2,UpBodyBuffer); SetIndexStyle(2,DRAW_HISTOGRAM, EMPTY, BodyWidth, UpBodyColor);

SetIndexBuffer(3,DnBodyBuffer); SetIndexStyle(3,DRAW_HISTOGRAM, EMPTY, BodyWidth, DnBodyColor);

SetIndexBuffer(4,TrendBuffer);

IndicatorShortName("Wilders trailing stop MTF candles("+Length+","+Coeff+")");

Length = MathMax(Length,1);

switch(TimeFrame)

{

case 1 : string TimeFrameStr="Period_M1"; break;

case 5 : TimeFrameStr="Period_M5"; break;

case 15 : TimeFrameStr="Period_M15"; break;

case 30 : TimeFrameStr="Period_M30"; break;

case 60 : TimeFrameStr="Period_H1"; break;

case 240 : TimeFrameStr="Period_H4"; break;

case 1440 : TimeFrameStr="Period_D1"; break;

case 10080 : TimeFrameStr="Period_W1"; break;

case 43200 : TimeFrameStr="Period_MN1"; break;

default : TimeFrameStr="Current Timeframe";

}

IndicatorShortName("Wilders trailing stop MTF candles("+TimeFrameStr+")");

return(0);

}

//----

//+------------------------------------------------------------------+

//| MTF function |

//+------------------------------------------------------------------+

int start()

{

datetime TimeArray[];

int i,limit,y=0,counted_bars=IndicatorCounted();

// Plot defined time frame on to current time frame

ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame);

limit= MathMin(Bars-counted_bars+3*TimeFrame/Period(),Bars-1);

for(i=0,y=0;i<limit;i++)

{

if (Time<TimeArray[y]) y++;

/*********************************************************************************************************

Add your main indicator loop below. You can reference an existing indicator with its iName or iCustom.

Rule 1: Add extern inputs above for all neccesary values

Rule 2: Use 'TimeFrame' for the indicator time frame

Rule 3: Use 'y' for your indicator's shift value

********************************************************************************************************/

int slope=iCustom(Symbol(),TimeFrame,"Wilders trailing stop with trend",Length,Coeff,4,y);

if (slope == 1)

{

UpWickBuffer = High;

DnWickBuffer = Low;

UpBodyBuffer = MathMax(Open,Close);

DnBodyBuffer = MathMin(Open,Close);

}

if (slope == -1)

{

DnWickBuffer = High;

UpWickBuffer = Low;

DnBodyBuffer = MathMax(Open,Close);

UpBodyBuffer = MathMin(Open,Close);

}

}

return(0);

}

//+------------------------------------------------------------------+

私は信じられない、それは最初の試みで動作します....私が作ったより良い(削除trendbufferはい、私は今見た)書くことができる何か他のものがありますか?

おかげMladen

ファイル:
cattura_2.jpg  72 kb
 
mladen:
チャート上にインチ単位で線を引くことはできません(メタトレーダーでは全く不可能ですし、どの取引プラットフォームでも可能かどうか疑問です)。また、これらの線はトレンドラインではなく水平線です(トレンドラインは制限することができますが、水平線は制限できません)。もし、線がどのように引かれるべきかの正確な数学的ルールがなければ(インチではなく価格によって)、単に引くことはできませんし、これらの数字の並びから、ルールはそれぞれの線に固有のものであると思われます。

OKありがとうございます。あなたが編集できるより良いインディを見つけました。これは、あるコーダーがforexfactoryで行った未完成のプロジェクトで、もう彼の居場所を見つけることができません。00、20、50、80を私の数字に置き換えてください。行はまた、単に特別な数字5、15、31、45、67に配置するのではなく、一緒にクラスタ化されています。

ありがとうございます。

ファイル: