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

 
triip:
私は素敵なスキャルピングシステムとテンプレートを見つけたのですが、このシステムをインストールした後、動作がとても遅くなりました。多分、誰かがそれを見て、その原因が何であるかを検出することができます。

テンプレートとインジケータです。

1m_alf_scalp.zip

キャンドルカラーインジケータ(IT_Candles)が問題であるように見えます。MT4が遅くなるのは、このコードの何が問題なのか、誰か理解していますか?

//+------------------------------------------------------------------+//| IT_Candles.mq4

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

#property indicator_chart_window

#include

#property indicator_buffers 2

extern color UpColor = LimeGreen;

extern color DnColor = Red;

extern int Width = 5;

extern double alpha = 0.09;

double ev=EMPTY_VALUE,Trend,Trigger,ALF;

double Up[];

double Dn[];

int init()

{

IndicatorBuffers(2);

SetIndexStyle(0,DRAW_HISTOGRAM,0,Width,UpColor);

SetIndexBuffer(0,Up);

SetIndexStyle(1,DRAW_HISTOGRAM,0,Width,DnColor);

SetIndexBuffer(1,Dn);

return(0);

}

int deinit()

{

return(0);

}

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1); //---- check for possible errors

if(counted_bars>0) counted_bars--; //---- last counted bar will be recounted

int limit = Bars-counted_bars;

for (int i=limit;i>=0;i--)

{

Up = ev;

Dn = ev;

Trend = iCustom(NULL,0,"Instant_Trendline",alpha,0,i);

Trigger = iCustom(NULL,0,"Instant_Trendline",alpha,1,i);

ALF = iCustom(NULL,0,"ALF",0,i+1);

if (Trigger > Trend && Close > Open && Close > ALF)

{

Up = MathMax(Open,Close);

Dn = MathMin(Open,Close);

}

if (Trigger < Trend && Close < Open && Close < ALF)

{

Dn = MathMax(Open,Close);

Up = MathMin(Open,Close);

}

}

}

 
triip:
キャンドルカラーのインジケーター(IT_Candles)が問題なようです。MT4が遅くなるのは、このコードのどこが問題なのか、誰か理解しているのでしょうか?
//+------------------------------------------------------------------+//| IT_Candles.mq4

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

#property indicator_chart_window

#include

#property indicator_buffers 2

extern color UpColor = LimeGreen;

extern color DnColor = Red;

extern int Width = 5;

extern double alpha = 0.09;

double ev=EMPTY_VALUE,Trend,Trigger,ALF;

double Up[];

double Dn[];

int init()

{

IndicatorBuffers(2);

SetIndexStyle(0,DRAW_HISTOGRAM,0,Width,UpColor);

SetIndexBuffer(0,Up);

SetIndexStyle(1,DRAW_HISTOGRAM,0,Width,DnColor);

SetIndexBuffer(1,Dn);

return(0);

}

int deinit()

{

return(0);

}

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1); //---- check for possible errors

if(counted_bars>0) counted_bars--; //---- last counted bar will be recounted

int limit = Bars-counted_bars;

for (int i=limit;i>=0;i--)

{

Up = ev;

Dn = ev;

Trend = iCustom(NULL,0,"Instant_Trendline",alpha,0,i);

Trigger = iCustom(NULL,0,"Instant_Trendline",alpha,1,i);

ALF = iCustom(NULL,0,"ALF",0,i+1);

if (Trigger > Trend && Close > Open && Close > ALF)

{

Up = MathMax(Open,Close);

Dn = MathMin(Open,Close);

}

if (Trigger < Trend && Close < Open && Close < ALF)

{

Dn = MathMax(Open,Close);

Up = MathMin(Open,Close);

}

}

}

triip

indicatorsフォルダに "Instant_Trendline "と "ALF "インジケータがあるかどうか確認して ください(どちらもこのインジケータが正しく動作するために必要です)。もし無い場合は、zipアーカイブからex4ファイルを解凍すれば、インジケータは問題なく動作します(もし無い場合は、非常に遅くなります)。

ファイル:
it.gif  75 kb
 
mladen:
triip "Instant_Trendline "と "ALF "インディケータがインディケータフォルダにあるかどうか確認してください(両方ともそのインディケータが正しく動作するのに必要です)。もし無い場合は、zipアーカイブからex4ファイルを解凍すれば、インジケータは問題なく動作します(もし無い場合は、非常に遅くなります)。

はい、他のインディケータもチャートに置いていますが、IT_Candlesを追加するとすぐにMT4が遅くなり、特にタイムフレームを切り替えるのが遅くなります...。

 
triip:
はい、他のインディケータもチャートに載せましたが、IT_Candlesを追加するとすぐにMT4の動作が遅くなり、特にタイムフレームの切り替えが遅くなります...。

トリプ

これらはチャート上に存在する必要はありません。しかし、indicatorsフォルダに(正確な名前を使って)存在する必要があります。一番簡単な確認 方法は、ターミナルのexpertsタブに行き、そこに何らかのエラーがあるかどうかを見ることです(写真のようなものです)。

ファイル:
error_2.gif  98 kb
 
mladen:
triip それらはチャート上にある必要はありません。しかし、それらはindicatorsフォルダに(それらの正確な名前を使用して)存在する必要があります。一番簡単な確認方法は、ターミナルのエキスパートタブに行き、そこに何らかのエラーがあるかどうかを見ることです(写真のようなもの)。

エラーはありません。

しかし、私は、ALF.ex4があまり遅くならないのに、ALF-MTF.ex4が完全に遅くなることに気づきました。私はindicatorsフォルダの中にサブフォルダを持っていて、そこにそれらの言及されたすべてのindicatorsを保存しています。多分、私はクリーンなMT4を再インストールする必要があります。

ファイル:
errors.png  27 kb
 
triip:
エラーはありません。

しかし、ALF.ex4はあまり遅くならないのに、ALF-MTF.ex4は完全に遅くなっていることに気づきました。私はindicatorsフォルダの中にサブフォルダを持っていて、そこにそれらの言及されたすべてのindicatorsを格納しています。多分、私はクリーンなMT4を再インストールする必要があります。

サブフォルダからメインのindicatorsフォルダに移動して、それから試してみてください。

 
mladen:
サブフォルダからメインのインジケータフォルダに移動して、試してみてください。

Much better, works like a charm ありがとうございます、mladen!!!!

 
sunshineh:
こんにちは。

チャートのバーの上にテキストオブジェクトを書き込む際に、いつも問題が発生します。

例えば

ObjectCreate ("Xh", OBJ_TEXT,0,Time[0],High[0]+1*pips2dbl);

ObjectSetText("Xh","1",10,"Tahoma",Orange);

ObjectCreate ("X", OBJ_TEXT,0,Time[0],Low[0]-1*pips2dbl);

ObjectSetText("Xl","1",10,"Tahoma",Orange);

バーの下にあるテキストオブジェクトは、フォントオブジェクトがテキストの「頭」に固定されているため、問題なく動作しています。

しかし、バーの上にテキストを書きたい場合、フォントサイズ10のテキストがバーの中に書き込まれてしまうので、pipsが分からなくなります。

私は "H1"、 "D1" または "W1 "などの大きな時間枠で私のテキストを書くときにも問題がある、そこに私はあまりにも、高または低値に私のフォント-距離を変更する必要があるためです。

テキストを90度回転させることができるのは知っていますが、そんなことはしたくありません。

では、その解決策をご存知でしょうか?

まず、1*pips2dblの代わりにATRを使ってみてください(そうすれば、異なる時間枠やシンボルに対して自動的に調整されます)。

また、高値の上に表示されているテキストオブジェクトのアンカーポイント(OBJPROP_ANCHOR)をANCHOR_LOWERに調整してみてください。

 
madopter:
調整可能な部分は、ロットサイズと、そのロットが適用される口座残高です。例えば、A = 0.01, B = $5000 や、A = 1.00, B = $10000 といったパラメータが考えられます。

この場合、比較に使用できるパラメータ 値を複数用意する必要があります。

extern double accountBalanceA = 5000; のようにパラメータを定義し、パラメータなしで同じことを行ったコードでそれらのパラメータを比較に使用することができます。

 
mladen:
jbozman

macdインジケータは変更の必要はありません(99.99%で1本か2本のバーを計算します)。

hiloのインジケータは非常に複雑な方法で値を探します。そのタスクをもっとシンプルな方法で行う他のインジケータを使用する方が良いです(そんなに複雑にする必要はありません)。

mladenさん、こんにちは。前日、前週、前月を一度に表示し、シンプルな線分を描き、チャートを混乱させない高値・安値を検索しましたが、見つかりませんでした。

他のものを探してみてくださいということでしたが、本当に探しましたが見つかりませんでした。mql4フォーラムにもリクエストを投稿しました。まだ返事はありません。

簡単に言うと、このインジケーターを改造するために誰か(あなた)にお金を払ってもいいと思っています。

これは前日ごとにプロットするので、「日数」を追加して欲しいです。EUR/USDとGBP/USDでは、私のチャート履歴は1996年以上までさかのぼるので、これらの行であまりにも多くのメモリを消費してしまうのです。

もし、あなたが雇われていないなら(もしかしたら他の人が雇うかも?)、この現在のものにNumber of Daysを追加するだけでは面倒なのでしょうか?他を探すか、改造してくれる人を探すまで使い続けることができます。もし、時間のかかる要望でしたら、完全に理解していますので、何から何までよろしくお願いします。

jbozman

ファイル: