アスク! - ページ 20

 

lsma コード

Doc,

lsmaのソースコードです。ご意見ありがとうございました。

//---- インジケータの設定

#property indicator_chart_window(インジケーターチャートウィンドウ

#property indicator_buffers 3

#property indicator_color1 黄色

#property indicator_color2 チャートリューズ

#property indicator_color3 レッド

//---- バッファ

double ExtMapBuffer1[];

double ExtMapBuffer2[];

double ExtMapBuffer3[];

int width;

extern int Rperiod = 34;

extern int Draw4HowLongg = 300; // 500 // 1000

int Draw4HowLong;

int shift

int i;

int loopbegin;

double sum[];

int length;

double lengthvar;

double tmp ;

double wt[];

int c;

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

//| カスタムインジケータ 初期化関数

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

int init()

{

//---- カウントのために2つのバッファを追加で使用します。

IndicatorBuffers(5);

//---- 描画の設定

SetIndexBuffer(2,ExtMapBuffer1)を設定します。

SetIndexBuffer(1,ExtMapBuffer2)を設定します。

SetIndexBuffer(0,ExtMapBuffer3)を設定します。

SetIndexBuffer(3,sum)を設定します。

SetIndexBuffer(4,wt)を設定します。

SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,3) を設定します。

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,3); SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,3);

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,3);

//---- 初期化完了

return(0);

}

int start()

{ Draw4HowLong = Bars-Rperiod - 5;

長さ = Rperiod;

loopbegin = Draw4HowLong - length - 1;

for(shift = loopbegin; shift >= 0; shift--)

{

sum[1] = 0;

for(i = length; i >= 1 ; i--)

{

lengthvar = length + 1;

lengthvar /= 3;

tmp = 0;

tmp = ( i - lengthvar)*Close[length-i+shift];

sum[1]+=tmp;

}

wt[shift] = sum[1]*6/(length*(length+1));

ExtMapBuffer3[shift] = wt[shift]; //赤色

ExtMapBuffer2[shift] = wt[shift]; //緑色

ExtMapBuffer1[shift] = wt[shift]; //イエロー

// for(c=loopbegin;c==shift;c++)

// {

if (wt[shift+1] > wt[shift])

{

ExtMapBuffer2[shift+1] = EMPTY_VALUE;

// ObjectCreate("smiley_face", OBJ_ARROW, 0, Time[shift], Low[shift]-Point*20);

// Print("時間=",時間[shift]);

// ObjectSet("smiley_face", OBJPROP_ARROWCODE, 242);

// ObjectSet("smiley_face", OBJPROP_COLOR , Red); // ObjectSet("smiley_face", OBJPROP_COLOR , Red);

// ObjectSet("smiley_face", OBJPROP_WIDTH , 1);

// ObjectsRedraw() を実行します。

//ExtMapBuffer3[shift+1] = EMPTY_VALUE;

//ExtMapBuffer3[shift+1] = EMPTY_VALUE; //ExtMapBuffer3[shift+1] = EMPTY_VALUE;

}

else if (wt[shift+1] < wt[shift])

{

ExtMapBuffer1[shift+1] = EMPTY_VALUE; //-1 赤/グレイムタイト

//ExtMapBuffer3[shift+1]=EMPTY_VALUE。

}

さもなくば

{

ExtMapBuffer1[shift+1]=CLR_NONE;//EMPTY_VALUE。

ExtMapBuffer2[shift+1]=CLR_NONE;//EMPTY_VALUE;

}

}

return(0);

}

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

 

こんにちは、皆さん

このコードをEAに書き込む方法を知りたいです。

rsi 14

パラメータ 設定30と70

買う

-RSIがライン30を下から上へ横切る(まずRSIがライン30を上から下へ横切り、その後シグナルが有効なラインまで戻ってくるだけでよい)

売る

-rsi cross below line 70 from above( 最初にrsiがライン70の上を下からクロスし、その後シグナルが有効なラインだけをクロスバックするはずです。)

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

 

EAにトレードタイムを追加するには?

ex:例:14~20時の間はEAが取引せず、他の時間は普通に取引している場合

そして、すべての収益性の高い取引を終了し、14h前に損失の取引を保持しますか?

ありがとうございます。

(私の悪い英語で申し訳ありません)

 
quangmach:
EAに取引時間を追加するには?

ex:EAが14~20時に取引されず、別の時間に正常に取引される!

そして、すべての収益性の高い取引を終了し、14h前に損失の取引を保持しますか?

ありがとうございます。

(下手な英語ですみません)

よくわかりませんが、timefilterで逆になっている可能性があります。

if (UseHourTrade){

if ((Hour()>=FromHourTrade && Hour()<=ToHourTrade)) {

Comment("Time for trade has not come else!");

return(0);

}

}[/CODE]

And in the settings of EA add the following:

[CODE]extern bool UseHourTrade = True;

extern int FromHourTrade = 14;

extern int ToHourTrade = 20;

しかし、時間(14と20)はメタトレーダーの時間であることに注意してください(ブローカーに依存します)。また、EAを使用するタイムフレームにも依存します。例えば、クローズ・バーが15であれば、14-20に関係なく15から20までとなります。クローズバーに依存します。

 
newdigital:
よくわかりませんが、timefilterで逆にして、例えば、起動後にこのようなものを追加することができるかもしれません。
if (UseHourTrade){

if ((Hour()>=FromHourTrade && Hour()<=ToHourTrade)) {

Comment("Time for trade has not come else!");

return(0);

}

}[/CODE]

And in the settings of EA add the following:

[CODE]extern bool UseHourTrade = True;

extern int FromHourTrade = 14;

extern int ToHourTrade = 20;
ただし、14時と20時はメタトレーダー時間であることに注意してください(ブローカーに依存します)。また、EAを使用するタイムフレームにも依存します。例えば、クローズ・バーが15であれば、14-20に関係なく15から20までとなります。クローズ・バーに依存します。

ありがとうございます。

そして、どうでしょうか?

14時前に利益が出ている取引を全て終了させ、損失が出た取引はそのままにしておくことは

可能なのでしょうか?

 

コメント 色

こんにちは。

インジケーターのコメント(別ウィンドウで表示されるもの)の色を変更する方法はありますか?

もしあれば、どのようにすればよいのでしょうか?

ありがとうございます。

 
kiwigold:
こんにちは。

インジケーターのコメント(別ウィンドウで表示されるもの)の色を変更する方法はありますか?

もしあれば、どのようにすればよいのでしょうか?

ありがとうございます。

ラベルを使えばできます。ラベルは、選択されたウィンドウの任意の場所に置くことができ、また、任意のフォント、任意の色/サイズなどを持つことができます。ですから、ラベルをコメントとして使い、x=20, y=20の位置に置き、フォントの色を好きなように設定することができます。

 

過去から現在へのバーカウント

MQLでは、バーカウントは常に右から左へ(現在から過去へ)行われるのですか?

過去から現在へのバーカウントを行うにはどうすればよいですか?

簡単な例として、ある月の各バーに番号を付け、1がその月の最初のバーを表し、それ以降のバーはインクリメントしていくにはどうしたらよいでしょうか?

ご助力ありがとうございます。

Bill (まだループに巻き込まれています)

 

既存のオブジェクトの名前と位置を使用して新しいオブジェクトを作成する

私の学習プロジェクトの一つは、Strategic Testerの チャート表示オプションを管理するtester.tplのカスタマイズに取り組んでいます。デフォルトのチャートスタイルは、視覚化するのが非常に難しいと感じています。そこで、私は新しいテンプレートを作成し、すべての矢印をより魅力的な矢印に置き換えるスクリプトを作成した。

しかし、矢印の名前から情報を取り出し、それをテキストとしてチャートに表示したいのです。矢印の名前には「#62 buy」とか「#73 sell close」といったものがあります。そうすれば、チャートを見て、特定のトレード#がいつエントリー/イグジットされたかを正確に確認することができます。なぜこれが他のプラットフォーム(例えばTradeStation)にあるようにStrategy Testerにデフォルトで含まれていないのか分かりません。

とにかく、私は問題のテキストを掴んで、チャート上の既存の矢印のすぐ下に新しいテキストオブジェクトを挿入したいのです。しかし、これを達成する方法がわかりません。

どうすればいいのでしょうか?

ありがとうございます。

ビル

 
billworld2:
MQLでは、バーのカウントは常に右から左(現在から過去)へ行われますよね?

過去から現在までのバーカウントを行うにはどうすればよいですか?

簡単な例として、ある月の各バーに番号を付け、1がその月の最初のバーを表し、それ以降のバーはインクリメントしていくにはどうしたらよいでしょうか?

ご助言ありがとうございます。

ビル(まだループに巻き込まれています)

日付と時間関数について 読み、iBarShift 関数を使って、指定した時間枠から指定した月の最初のバーのシフトを取得する必要があります。