アスク! - ページ 163

 
jizhong68:
親愛なるGuru。

2次元の配列、例えばZigZag[2][100]を使っているのですが、1次元でソートしたいのです。 以下の関数を使っています。

ArraySort(ZigZag,WHOLE_ARRAY,0,MODE_DESCEND);

しかし、1次元目でも2次元目でもソートできないようです。

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

MQLのドキュメントによると、ArraySortは1次元でソート します。もし正しい結果を得られない場合は、配列の入力と出力を投稿してください。

単純なクイックソート関数を作成するには、それほど時間はかかりません。新しい配列を作成し、ソートされた結果を格納し、それからZigZagを検索し、2番目の次元をコピーするためにforループを実行します。おそらく非効率的ですが、それで十分です。

 

以下はそのコードです。

beckham.is.619:
MQLのドキュメントでは、ArraySortは1次元目でソートすると記載されています。 正しい結果が得られない場合は、配列の入力と出力を投稿してください。 簡単なクイックソート関数を書くのにそれほど時間はかからないでしょう。新しい配列を作成し、ソートされた結果を格納し、それからZigZagを検索し、2番目の次元をコピーするためにforループを実行します。おそらく非効率的ですが、これで十分です。

ご回答ありがとうございます。

サポートラインとレジスタンスラインを計算し、チャートに表示したいのですが、そのアルゴリズムは、履歴から100のジグザグを見つけ、各ジグザグの重さを数えるというものです。例えば、あるジグザグが1.5000だとすると、この2つのジグザグの距離が5ポイント以内である他のジグザグをすべて探し、もしそうなら、このジグザグに1カウントを加え、これを100個のジグザグすべてに対して行います。

これを終えたら、インジケータにあるように、これらのジグザグをカウンタ次元でソートしてみるのですが、ArraySort(0)関数が実行される前と後の値を表示してみましたが、違いは見当たりません。

参考までにインジケータを貼っておきます。

よろしくお願いします。

以下はインジケーターのコードです。

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

//| リスクとサポート.mq4||Copyright ?

//| コピーライト'200

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

#property copyright "Copyright ?2006, Nick Bilak".

// 2007年初頭にt_davidによってチャンネルインディケーターにハックされたもの

#property indicator_chart_window

extern int Gap = 5;

extern int Depth = 24;

extern int Deviation = 5; extern int Depth = 24; extern int BackStep = 3;

extern int BackStep=3;

extern int BackStart=288;

int ZigN=100;

double ZigZag[2][100];

int ShowBars = 500;

int dist=24;

int init() {

return(0);

int start() {

int k,i,j,limit,hhb,llb;

int counted_bars=IndicatorCounted();

//---- 最後にカウントされたバーが再カウントされる

if(counted_bars>0) counted_bars--;

ShowBars=Bars-counted_bars;

FindZigZag();

ResistanceSupport();

// for(i=0;i<10;i++)

{

// ObjectDelete("P_Line");

// ObjectCreate("P_Line", OBJ_HLINE,0, CurTime(),Close[0]); // ObjectCreate("P_Line", OBJ_HLINE,0, CurTime(),Close[0]);

ObjectDelete("RS0")。

ObjectCreate("RS0",OBJ_HLINE,0,CurTime(),ZigZag[1][0]); ObjectCreate("RS0",OBJ_HLINE,0,CurTime(),ZigZag[0]);

ObjectDelete("RS1")を実行します。

ObjectCreate("RS1",OBJ_HLINE,0,CurTime(),ZigZag[1][1]); ObjectCreate("RS1",OBJ_HLINE,0,CurTime(),ZigZag[1][1])

ObjectDelete("RS2")を実行します。

ObjectCreate("RS2",OBJ_HLINE,0,CurTime(),ZigZag[1][2]); ObjectDelete("RS3",OBJ_HLINE,0,CurTime(),ZigZag[1][2])

ObjectDelete("RS3")を実行します。

ObjectCreate("RS3",OBJ_HLINE,0,CurTime(),ZigZag[1][3]); ObjectDelete("RS4",OBJ_HLINE,0,CurTime(),ZigZag[1][3])

ObjectDelete("RS4")を実行します。

ObjectCreate("RS4",OBJ_HLINE,0,CurTime(),ZigZag[1][4]); ObjectDelete("RS5",OBJ_HLINE,0,CurTime(),ZigZag[1][4])

ObjectDelete("RS5")を実行します。

ObjectCreate("RS5",OBJ_HLINE,0,CurTime(),ZigZag[1][5]); ObjectCreate("RS5",OBJ_HLINE,0,CurTime(),ZigZag[1][5])

ObjectDelete("RS6")を実行します。

ObjectCreate("RS6",OBJ_HLINE,0,CurTime(),ZigZag[1][6]); ObjectCreate("RS6",OBJ_HLINE,0,CurTime(),ZigZag[1][6])

ObjectDelete("RS7")を実行します。

ObjectCreate("RS7",OBJ_HLINE,0,CurTime(),ZigZag[1][7]); ObjectCreate("RS7",OBJ_HLINE,0,CurTime(),ZigZag[1][8])

ObjectDelete("RS8")を実行します。

ObjectCreate("RS8",OBJ_HLINE,0,CurTime(),ZigZag[1][8]); ObjectCreate("RS8",OBJ_HLINE,0,CurTime(),ZigZag[1][8])

ObjectDelete("RS9")を実行します。

ObjectCreate("RS9",OBJ_HLINE,0,CurTime(),ZigZag[1][9]); ObjectDelete("RS9",OBJ_HLINE,0,CurTime(),ZigZag[1][9])

// if (ShowBars >= Bars) ShowBars = Bars;

/*

for (i=0;i<ShowBars;i++){ {...

b1=0;

b2=0;

b3=0;

b4=0;

b5=0;

b6=0;

b8=0;

hhb = iHighest(Symbol(),0,MODE_HIGH,dist,i-dist/2);

llb = iLowest(Symbol(),0,MODE_LOW,dist,i-dist/2);

if (i==hhb)

b3=High+SignalGap*Point;

if (i==llb)

b4=Low[llb]-SignalGap*Pointとする。

b1=High;//+SignalGap*Point。

b2=Low[llb];//-SignalGap*Point;

}

*/

return(0);

}

//10本のZigZagを見つける。

void FindZigZag()

{

int i=BackStart;

int ii=0;

int m=0;

int n=0;

while(ii<ZigN)

{

if(iCustom(NULL,0, "zigzag",Depth,Deviation,BackStep,0,i)>0.1) //1=Highとする。

{

ジグザグ[0]=0;

ZigZag[1]=iCustom(NULL,0, "zigzag",Depth,Deviation,BackStep,0,i);

// Print("ZigZag: ",ZigZag[1]);

ii++;

}

i++;

}

// 抵抗線と支持線を探す

void 抵抗線・支持線()

{

int i,n;

for(i=0;i<ZigN;i++)

{

for(n=0;n<ZigN;n++)の場合。

{

if(MathAbs(ZigZag[1]-ZigZag[1][n])<Point*Gap) { if(MathAbs(ZigZag[1]-ZigZag[1][n])<Point*Gap)

{

ZigZag[0]++;

}

// Print(i+":ZigNumber: "+ZigZag[0]+" ZigZag: "+ZigZag[1]);

}

// Print("終了");

ArraySort(ZigZag,WHOLE_ARRAY,0,MODE_DESCEND);

for(i=0;i<ZigN;i++)

{

// Print(i+":ZigNumber: "+ZigZag[0]+" ZigZag: "+ZigZag[1]);

}

// Print("終了");

}

 

MQL4について質問してもいいですか?

ベルリンからこんにちは。

このフォーラムでは初めてで、Coders` guruのMQL4コースを読みました。あなたの教えにはとても感謝しています。今、私は何か簡単なプログラムを試してみたいのですが、すでに 、なぜMA線は私のメインチャートに表示されないのでしょうか?ありがとうございます。

#property indicator_chart_window

#プロパティindicator_color1 Red

extern int Period_MA = 21;

bool Fact_Up = true;

bool Fact_Dn = true;

int start()

{

double MA;

MA=iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,0);

if (Bid > MA && Fact_Up == true)

{

Fact_Dn = true。

Fact_Up = false;

Alert("価格はMA(",Period_MA,")の上です");

}

if (ビッド < MA && Fact_Dn == true)

{

Fact_Up = true。

Fact_Dn = false;

Alert("Price is below MA(",Period_MA,").");

}

return(0);

}

 

こんにちは。

カスタムインジケータのアイデアを練っています。スクリプトで可能かどうか知りたいのですが。

MT4はどのローソク足がマウスの下にあるかを常に認識することができますか?そこで、あるローソク足(クリックするか、マウスを上に置くことで選択する)の始値または終値に水平線を 引きたいのですが、可能でしょうか?

私はこれについての任意の情報を見つけることができませんでした。

それは非常に役立つだろう、ありがとうございます

 

EA用オーダー/トランザクション・マネージャー

こんにちは。

EAの注文/取引管理のためのMQ4ライブラリに詳しい方はいらっしゃいますか?私は主に次の2つの機能に興味があります。

1.仮想ストップオーダーの 配置 ストップオーダーで適用されるOrderSend(...)を使う代わりに、同じパラメータでMyOrderSend(...)を使い、価格を追跡しながらマネージャーがすべてを管理し、価格がストップに触れたときに成行注文を出します。

この主な目的は、不必要な STOPLEVEL の負担を克服することですが、「シャドー」注文も可能になります。

2.2. マネージャは、保留中の注文、実行中の注文、終了した注文の状態と統計情報を収集します。この情報を使って、派手なMM戦略や派手なストップ戦略を実装できる(例えば、ライブポジションがインザマネーになった回数を利益保全やストップメカニズムに使うことができる)。

私はかなり長い間検索したので、私はそのようなライブラリの全体が存在するとは思わないが、あなたが部分的なソリューションと関連するコードスニペットに精通している場合、それは素晴らしいことだ。

乾杯。

Trendick

 

EA用オーダー/トランザクションマネージャ

mql5でヘッジポジションを可能にする非常に素晴らしいオーダーマネージャーが開発されたことを知りました。paulsfxrandomwalk blogspotを参照してください(まだリンクの投稿は許可されていません)。

完全ではありませんが、非常に素晴らしいコードの一部です。

c++のOOPコードを極めて限定的なmql4にダウングレードしなければならないので、これをmql4に翻訳するのは簡単ではないはずですが、まだ可能です。大きな無駄のように思える

というわけで、私のリンク募集はまだ続いています....

 

チャート上のMAライン

ssh95:
ベルリンからこんにちは。

このフォーラムでは初めてで、Coders` guruのMQL4コースを読みました。あなたの教えにはとても感謝しています。今、私は何か簡単なプログラムを試してみたいのですが、すでに 、なぜMA線が私のメインチャートに表示されないのでしょうか?ありがとうございます。

#property indicator_chart_window

#プロパティindicator_color1 Red

extern int Period_MA = 21;

bool Fact_Up = true;

bool Fact_Dn = true;

int start()

{

double MA;

MA=iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,0);

if (Bid > MA && Fact_Up == true)

{

Fact_Dn = true。

Fact_Up = false;

Alert("価格はMA(",Period_MA,")の上です");

}

if (ビッド < MA && Fact_Dn == true)

{

Fact_Up = true。

Fact_Dn = false;

Alert("Price is below MA(",Period_MA,").");

}

return(0);

}

Berlinerさん、こんにちは。

チャート上にMAラインを描くためのルーチンが、上記のコードに含まれていないようです。

このTSDフォーラムで、MAインジケータの良い例をたくさん検索して、チャート上にMAラインを描く方法を学ぶために、コードを見ることができます。

幸運を祈る...そして学び続けよう

ロバート

 

MTFインジケータのリフレッシュ問題

こんにちは。

このインジケーターについてヘルプが必要です。MTFのMACDスロープですが、リフレッシュに問題があり、修正するためにTFを切り替えなければなりません。

すでに、次のように変更してみました。

limit=Bars-counted_bars;を limit=Bars-counted_bars/Period() に変更してみました。

とし、Refreshrates()も追加してみました。

を追加してみましたが、結果が出ません。

申し訳ありませんが、コードを.mqlでアップロードしなければならず、phpタグを使ってアップロードしようとしましたが、長すぎました。

私はまた、MTFのスレッドに 画像をアップロード

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

ファイル:
 
codersguru:
こんにちは、皆さん。

プライベートメッセージで、いくつかのコードについて助けを求めている人がたくさんいます。

ここでは、MQL4に関する質問を投稿することができます。

コードグルです。

私はプログラミングについて全く知識がありません。そして、このexecute_line indiにalarmとalert(外部インジケータとして)を置くことで、あなたか誰かが私を助けてくれる必要があります。

よろしくお願いします。

テリーさん、ありがとうございます。

ファイル:
 

ワダアタール スキャルピング

こんにちは。

スキャルピングに特化した面白いインジケータを見つけました。

私はそれをバックテストしたいのですが、それは数日後に任意のバーを印刷しません。

数千のバーを表示させるために、コードを編集する必要があることを確認することができますか?メタエディタに数字を入力するオプションがあれば教えてください。私は何かを見つけることができませんでした。

お時間をいただきありがとうございました。

ザンダー

waddah_attar_scalping.ex4

waddah_attar_scalping.mq4。