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

 

こんにちは、現在の価格を追跡する方法があるかどうか確認 したいのですが。

例えば、価格があらかじめ設定されたポイントを超えたら、即座に取引のトリガーとなるようなものです。オンラインで見つけたものは、主にバーの終値、高値、安値などを参照しています。どなたか教えてください。ありがとうございます。

返信

テランス

 

もし私が正しく理解しているならば、Askand Bidを 使用すべきです。新規の買い注文はAsk、新規の売り 注文はBidとなります。

tkuan77:
こんにちは、私は現在の価格を追跡する方法があるかどうかを確認したいのですが?

例えば、価格があらかじめ設定されたポイントを超えたら、即座に取引を開始します。私がオンラインで見つけたものは、主にバーの終値、高値、安値などを参照しています。どなたか教えてください。ありがとうございます。

Regards

テランス
 

はい、Mladen、それは私が今使用しているものです。私の質問は明確に説明されていないかもしれません。私が実現しようとしているのは、例えば、あるポイント、例えば前回のD1ローソク足の終値プラスマイナス20pipsをプリセットし、現在の価格がプリセットしたポイント(D1+20pips)または(D1-20pips)にヒットすれば、現在のローソクが終値か現在かにかかわらず、買いまたは売りがトリガーされるということです。

そこで、私が今実現しようとしているのは、価格がいわゆる (D1 + 20pips) または (D1 - 20pips) にヒットしたときに、私のシステムが取引を開始するようにする方法です。アドバイスをありがとうございました。

よろしくお願いします。

テランス

mladen:
もし私が正しく理解しているなら、Askと Bidを 使うべきです。新規の買い注文はアスク、新規の売り注文はビッドです。
 

今、私は本当に理解しているかどうかわからないが、それを試してみてください。このようなものです(これは実際のコードではなく、チェック する方法の例です - ほとんどの場合、クローズとビッドは同じです)。

if (close[1](D1+20pips)) trigger up action

if (close[1]>(D1-20pips) && close[0]<(D1-20pips)) trigger down action

tkuan77:
はい、Mladen、それは私が今使っているものです。私の質問は明確に説明されていないかもしれません。私が達成しようとしていることは、例えば、私はポイント、例えば前のD1キャンドルクローズプラスとマイナス20pipsをプリセットし、現在の価格は(D1 + 20pips)または(D1 - 20pips)のいずれかのプリセットポイントに当たった場合、それは現在のキャンドルが近いかどうかに関係なく、購入または売却のいずれかをトリガしますと言うことです。

私が今実現しようとしているのは、価格がいわゆる (D1 + 20pips) または (D1 - 20pips) にヒットしたときに、私のシステムが取引を開始する方法です。アドバイスをありがとうございました。

アドバイスありがとうございます。

テランス
 

こんにちは、Mladen。

はい、私が遭遇したエラーのうち、かなり多くのものを解決することができましたが、1つはまだ悩まされています。どのようにトリガーすればいいのでしょうか?

1) FastMA1 が SlowMA1 を10pips 上方でクロスしたときにロングトレードをする。

2) FastMA1がSlowMA1と10pips下方にクロスした時にショートトレードする。

分からないことは、コード内の10pipsに反応するMAを追加する方法です。

/*--------------------------------------------------------------------------------*/

FastMA1 = iMA(NULL,PERIOD_M30,10,0,MODE_SMA,PRICE_CLOSE,0);

SlowMA1= iMA(NULL,PERIOD_M30,20,0,MODE_SMA,PRICE_CLOSE,1);

if(FastMA1 > SlowMA1)

{ロング}

if(FastMA1<SlowMA1)なら

{ショート}

/*--------------------------------------------------------------------------------*/

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

Regards

テランス

mladen:
今、私は本当に私が理解しているかどうかわからないが、それを試してみましょう。次のようなタイ(これは実際のコードではなく、チェックする方法の例です - ほとんどの場合、クローズと入札は同じです)。
if (close[1](D1+20pips)) trigger up action

if (close[1]>(D1-20pips) && close[0]<(D1-20pips)) trigger down action

 

次のようなことを試してみてください。

double pipMultiplier=1; if (Digits==3 || Digits==5) pipMultiplier=10.Diff = 10*Point*pipMultiplier; if (Digits==3 ||Digits==5) pipMultiplier=10;

double diff = 10*Point*pipMultiplier;

if(FastMA1 > SlowMA1+diff)

{ロング}

if(FastMA1<SlowMA1-diff)の場合。

{ショート}

tkuan77:
Mladenさん、こんにちは。

このように、いくつかのエラーは解決できたのですが、1つだけまだ問題があります。どのようにトリガーすればいいのでしょうか。

1) FastMA1 が SlowMA1 を10pips 上方で交差したときにロング取引

2) FastMA1がSlowMA1と10pips下方にクロスした時にショートトレードする。

分からないことは、コード内の10pipsに反応するMAを追加する方法です。

/*--------------------------------------------------------------------------------*/

FastMA1 = iMA(NULL,PERIOD_M30,10,0,MODE_SMA,PRICE_CLOSE,0);

SlowMA1= iMA(NULL,PERIOD_M30,20,0,MODE_SMA,PRICE_CLOSE,1);

if(FastMA1 > SlowMA1)

{ロング}

if(FastMA1<SlowMA1)なら

{ショート}

/*--------------------------------------------------------------------------------*/

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

Regards

テランス
 

Maldenさん、前H1ロウソク日に関するご回答を参考に、インジケータをコーディングしようとしました。しかし、私はそれを行うことができませんでした。

私は例を持っています。

私は別のウィンドウに1つのバッファを持つインジケータを持っています。それはrsi、atrなどのようなラインを描画します。

今、私は過去24日間の指標値の平均から計算される同じ別のウィンドウにライン(水平)を追加する必要があります(それは私が24と言ったこの理由のために1時間だけです)。どうすればいいのでしょうか?過去の各日に対してこの線を引くことは可能でしょうか?

バッファを追加しなければならないことは分かっています。

このバッファに私が必要とするものを与えるにはどうしたらいいでしょうか?

ありがとうございます。

 

...

ダシオ

通常のインジケーター(rsi, atr, ...)と、その同じインジケーターのマルチタイムフレーム平均を組み合わせたようなものですね。そのように試されましたか?

dasio:
Malden私は前のH1キャンドル日に関するあなたの答えのように指標をコーディングしようとしました。しかし、私はそれを行うことができませんでした。

例があります。

バッファが1つしかないインジケータを別ウィンドウで表示させています。それはrsi、atrなどのようなラインを描画します。

今、私は同じ別のウィンドウに過去24日間の指標値の平均から計算されたライン(水平)を追加する必要があります(それは私が24と言ったこの理由のために1時間だけです)。どうすればいいのでしょうか?過去の各日に対してこの線を引くことは可能でしょうか?

バッファを追加しなければならないことは分かっています。

どうすればこのバッファに私が必要とするものを与えることができるのでしょうか?

ありがとうございました。
 
mladen:
dasioさん おっしゃることは、通常のインディケータ(rsi, atr, ...)と、その同じインディケータのマルチタイムフレーム平均の組み合わせのように見えます。そのように試されましたか?

こんにちは、ご返信ありがとうございます。

もしかしたら、私の説明不足かもしれません。

私は、以前のバーに基づいて私自身の計算で別のチャートウィンドウに線を描くインジケータを作成します。

今、私はこの線の値が前日に計算された最後の24の値のevarageで等しくなるインジケータに線を追加する必要があり、私は前日にこの線を描画する必要があります。画像を添付します。しかし、この行は、それが私がそれを計算するのと同じ日の指標のラ24値に対して計算する必要があるため、一日の終わりに計算する必要があります。

今のところ、このインジケータは1時間のタイムフレームでのみ 使用されなければならないので、MTFインジケータではありません。

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

ps.白線は印刷された1日分の同じ24の値で計算されています。

ファイル:
example_1.gif  7 kb
 

...

ダシオ

こんな感じで試してみてください。

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 OrangeRed

#property indicator_color2 Silver

#property indicator_width1 2

extern int RsiPeriod = 50;

extern int RsiPrice = PRICE_CLOSE;

double work[];

double avg[];

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

//

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

//

//

//

//

//

int init()

{

SetIndexBuffer(0,work);

SetIndexBuffer(1,avg);

return(0);

}

int start()

{

int i,countedBars = IndicatorCounted();

if (countedBars<0) return(-1);

if (countedBars>0) countedBars--;

int limit = MathMin(Bars-countedBars,Bars-1);

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

{

work = iRSI(NULL,0,RsiPeriod,RsiPrice,i);

int y = iBarShift(NULL,PERIOD_D1,Time);

int x = iBarShift(NULL,PERIOD_D1,Time);

if (x!=y)

{

int k = iBarShift(NULL,0,iTime(NULL,PERIOD_D1,y));

double average = work[k];

int c = 1;

for (int j=k-1; j>=i; j--,c++) average += work[j]; average /= c;

for ( j=k ; j>=i; j--) avg[j] = average;

}

}

return(0);

}

dasio:
こんにちは、ご返信ありがとうございます。

多分、私はうまく説明していない。

私は以前のバーに基づいて私自身の計算で別のチャートウィンドウに線を描く指標を作成します。

今私は、この線の値が最後の日に計算された最後の24の値のevarageで等しい指標に線を追加する必要があり、私は前日にこの線を描画する必要があります。画像を添付します。しかし、この行は、それが私がそれを計算するのと同じ日の指標のラ24値に対して計算する必要があるため、一日の終わりに計算する必要があります。

今のところ、このインジケータは1時間のタイムフレームでのみ使用されなければならないので、MTFインジケータではありません。

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

ps.白線は、印刷された1日の期間の同じ24の値で計算されています。

ファイル:
test.gif  34 kb