コーディングの方法は? - ページ 270

 

IndicatorCountedとインジケーターバッファの 同期を保つ。

こんにちは。

カスタムインジケータのバッファのスライドについて質問です。他のフォーラムで質問したのですが、効果がありませんでした。

例えば、以下のような感じです。

コードです。

#define MAX_LOOK_BACK 5

#property indicator_minimum 0

#property indicator_maximum 100

#property indicator_color1 DodgerBlue

#property indicator_separate_window

double rsiBuf[];

int start()

{

int limit;

int counted_bars = IndicatorCounted();

//---- check for possible errors

if(counted_bars < 0)

return(-1);

//---- the last counted bar will be recounted

if(counted_bars > 0)

counted_bars--;

limit=Bars-counted_bars;

//---- main loop

Print("indicator limit: ", limit);

if(MAX_LOOK_BACK < limit)

limit = MAX_LOOK_BACK;

//Calculate from right to left

for(int i = 0; i < limit; i++)

{

rsiBuf = iRSI(Symbol(), NULL, 14, PRICE_CLOSE, i);

}

}

インジケータが実行されている間、最新の5つのバーの最新のRSI値を計算します。(テストしやすいようにMAXLOOK_BACKの最大値を入れています) 例えばlimit==2(EAでiCustom経由で呼び出すとlimit==2は私のテストではよく起こります)の状況では、バー0とバー1の値を計算してそれぞれRSI[0] と RSI[1] に書き込み、バッファの残りはタッチしないでしょう。私が見てきたカスタムインジケータはすべてこのように書かれています。RSI[0]とRSI[1]は上書きされますが、これらの要素の前の値はRSI[2]とRSI[3]にあるはずなので、バッファをスライドさせるべきではないでしょうか。

視覚化するために:

Tick=0 AND Limit = 5 ==> RSI[0] = 33.33 RSI[1] = 44,44 RSI[2]=55,55 RSI[3]=66,66 RSI[4] = 77.77

ここで、直近の2つのRSI値を88,88と99,99とすると、以下のような配列になります。

Tick=1 AND limit=2 ==> RSI[0] = 88,88 RSI[1] =99.99 RSI[2]=55,55 RSI[3]=66,66 RSI[4] = 77.77

BUTはこうなってはいけない。

ティック=1 AND リミット=2 ==> RSI[0] = 88,88 RSI[1] =99.99 RSI[2]=33,33 RSI[3]=44,44 RSI[4] = 55.55

新しいバーが2本来たら、前のバーの値を2つスライドさせるべきでは? previousなぜすべてのインジケータがこのように書かれ、値のスライドがないのか。また、なぜトレンドラインが正しく引けるのか。

 

私はケルトナーバンドを使用してポジションを終了するEAに取り組んでいます(利益と損失の両方)しかし、私は2ロットで平均化するときはいつでもEAは、最初のエントリを無視します。新しいチャートでエントリーする以外に何か解決策はありますか?ありがとうございます。

ファイル:
 
mezarashii:
私はケルトナーバンドを使用してポジションを終了するEAに取り組んでいます(利益と損失の両方)しかし、私が2ロットで平均化するときはいつでも、EAは最初のエントリを無視します。新しいチャートでエントリーする以外に何か解決策はありますか?ありがとうございます。

EAをここに投稿してください。

 

コーダーからまだソースコードをもらっていないので、このまま使えるといいのですが。どんなフィードバックでも大歓迎です。

ファイル:
 

条件付き削除保留

私は、条件付き削除保留のスクリプトまたはコードを探しています。

基本的に実行できるようにしたいです。

IF アスクが200MA H1

200MAより下に未決済の注文がある場合、その注文を保持する。

何かアイデアはありますか?

 
 
 

10ペアの週足始値を 同時に取得する

こんにちは、私はMT4を使い始めたばかりです。私は、10組のペアの週足建値に同時にアクセスするスクリプトを書くことによって、自分のテクニックを自動化しようとしています。週足チャートに1つずつアクセスするEAやスクリプトを使うことができません。どなたか、最適な方法を教えていただけませんか?ありがとうございます。

 
novalight:
こんにちは、私はMT4の初心者です。10ペアの週足オープン価格に同時にアクセスするスクリプトを書くことによって、自分のテクニックを自動化しようとしています。週足チャートに1つずつアクセスするEAやスクリプトを使うことができません。どなたか、最適な方法を教えていただけませんか?ありがとうございます。

こんにちは。

iOpen機能を組み合わせる必要があります。

例えば、gbpusd, eurusd, usdjpyのオープン価格を コメントで表示したいとします。

とすると、コード・スニペットは次のようになります。

double openPair1 = iOpen("EURUSD",PERIOD_W1,0);

double openPair2 = iOpen("GBPUSD",PERIOD_W1,0)。

double openPair3 = iOpen("USDJPY",PERIOD_W1,0); double openPair4 = iOpen("USDJPY",PERIOD_W1,0);

Comment("EURUSDの週足オープン。"+openPair1+nGBPUSD weekly open:"+openPair1+"\nUSDJPY weekly open:"+openPair1")です。

 

私は、2つの追加入力と一緒に入力としてペアを持つことを好む。

プレフィックスとサフィックスの入力は、ブローカーが基本的なペア名に何かを追加するときの手間を省きます。

extern string pair_preffix = "";

extern string pair_suffix = ""; // IBFXミニ口座の場合はmを入力します。

extern string pair1 = "EURUSD;

extern string pair2 = "GBPUSD";

extern string pair3 = "USDJPY";

文字列myPair1, myPair2, myPair3;

int init()

{

myPair1 = pair_prefix + pair1 + pair_suffix.MyPair2 = pair_prefix + pair1 + pair_suffix;

myPair2 = pair_prefix + pair2 + pair_suffix; int init() { myPair2 = pair_prefix + pair2 + pair_suffix;

myPair3 = pair_prefix + pair3 + pair_suffix; myPair3 = pair_prefix + pair3 + pair_suffix;

return(0);

}

int start()

{

double openPair1 = iOpen(myPair1, PERIOD_W1,0);

double openPair2 = iOpen(myPair2, PERIOD_W1,0)。

double openPair3 = iOpen(myPair3, PERIOD_W1,0); double openPair3 = iOpen(myPair3, PERIOD_W1,0);

Comment(pair1 + "weekly open:但し、"+openPair1+" \n" + pair2 + " 週足open:"+openPair2+"\n" + pair3 "" 週間オープン。"+openPair3);

}

もちろん、10ペアの場合は配列を使用します。

ロバート・ヒル、通称MrPip