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

 

こんにちは、Mladenです。

またまたお世話になります。

以下のインジケーターで、同じバーで「買い」と「売り」の矢印を出したいのですが、(つまり、同じバー(時間)でrsi、cci、cmoの条件が発生したとき)修正できますか?

#プロパティ indicator_chart_window

#プロパティ indicator_buffers 2

#property indicator_color1 ブルー

#property indicator_color2 レッド

extern int barsToProcess=100000;

//

double ExtMapBuffer1[];

double ExtMapBuffer2[];

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

//

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

int init()

{

SetIndexBuffer(0,ExtMapBuffer1); SetIndexStyle(0,DRAW_ARROW,0,2); SetIndexArrow(0,233)です.

SetIndexBuffer(1,ExtMapBuffer2); SetIndexStyle(1,DRAW_ARROW,0,2); SetIndexArrow(1,234); SetIndexArrow(1,234);

return(0);

}

int deinit() { return(0); }.

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

//

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

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars>0)counted_bars--;

int limit=Bars-counted_bars; if(limit>barsToProcess)limit=barsToProcess;

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

{

double rsi=iRSI(NULL,0,5,PRICE_CLOSE,i);

double cci=iCCI(NULL,0,15,PRICE_CLOSE,i)。

double cci1=iCCI(NULL,0,18,PRICE_CLOSE,i); double cci1=iCCI(NULL,0,18,PRICE_CLOSE,i);

double cmo=iCustom(NULL,0, "cmo",false,18,0,i); double cmo=iCustom(NULL,0, "cmo",false,18,0,i);

if(rsi>80 && cci>250 && cmo>50)

ExtMapBuffer1=Low+5*Point;

else ExtMapBuffer1=EMPTY_VALUE;

if(rsi<20 && cci1<-250 && cmo<-50)

ExtMapBuffer2=High-5*Point。

else ExtMapBuffer2=EMPTY_VALUE;

}

return(0);

}

 
anonimm:
こんにちは、Mladenです。

いつもありがとうございます。

以下のインジケーターで、同じバーで「買い」と「売り」の矢印を出したいのですが、(つまり、同じバー(時間)でrsi、cci、cmoの条件が発生したとき)修正できますか?

#プロパティ indicator_chart_window

#プロパティ indicator_buffers 2

#property indicator_color1 ブルー

#property indicator_color2 レッド

extern int barsToProcess=100000;

//

double ExtMapBuffer1[];

double ExtMapBuffer2[];

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

//

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

int init()

{

SetIndexBuffer(0,ExtMapBuffer1); SetIndexStyle(0,DRAW_ARROW,0,2); SetIndexArrow(0,233)です.

SetIndexBuffer(1,ExtMapBuffer2); SetIndexStyle(1,DRAW_ARROW,0,2); SetIndexArrow(1,234); SetIndexArrow(1,234);

return(0);

}

int deinit() { return(0); }.

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

//

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

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars>0)counted_bars--;

int limit=Bars-counted_bars; if(limit>barsToProcess)limit=barsToProcess;

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

{

double rsi=iRSI(NULL,0,5,PRICE_CLOSE,i);

double cci=iCCI(NULL,0,15,PRICE_CLOSE,i)。

double cci1=iCCI(NULL,0,18,PRICE_CLOSE,i); double cci1=iCCI(NULL,0,18,PRICE_CLOSE,i);

double cmo=iCustom(NULL,0, "cmo",false,18,0,i); double cmo=iCustom(NULL,0, "cmo",false,18,0,i);

if(rsi>80 && cci>250 && cmo>50)

ExtMapBuffer1=Low+5*Point;

else ExtMapBuffer1=EMPTY_VALUE;

if(rsi<20 && cci1<-250 && cmo<-50)

ExtMapBuffer2=High-5*Point。

else ExtMapBuffer2=EMPTY_VALUE;

}

return(0)です。

}

Anonimmさん、トレンドバッファを追加しました、うまくいくはずです、しかし、cmoが近くにないので、100%確実ではありません。

ファイル:
 

mladenさん、こんにちは。

早速のご回答ありがとうございます。インディが良いですね。

月曜日を選択した場合、月曜日を1つだけ表示するのではなく、月曜日を300個表示するように変更していただけませんか?

または、火曜日を選択した場合、火曜日を1つ だけ表示するのではなく、火曜日を300個表示するようにしてください(調整可能であればより良いです)。

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

anton

mladen:
anton1 はい、これです。曜日を選び、線の色を設定することができます。
 
anton1:
こんにちは、mladen。

迅速な対応ありがとうございました。インディが良いですね。

月曜日を選択した場合、月曜日を1つだけ表示するのではなく、300個表示するように変更していただけないでしょうか。

または、火曜日を選択した場合、火曜日を1つだけ表示するのではなく、火曜日を300個表示するようにしてください(調整可能であればより良いです)。

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

アントン

はい、どうぞ

ファイル:
 

mladenさん、こんにちは。

この "year-open "インディを修正していただけませんでしょうか?私はこのインディが、1つの年始行だけでなく、何年も前の履歴を表示する必要があります。

ありがとうございます。

アントン

mladen:
フェアアストル

これは、かなり迅速にその年のオープン価格を見つけることができます。

for (int i=0; i<12; i++) if (TimeYear(iTime(NULL,PERIOD_MN1,i))!=TimeYear(iTime(NULL,PERIOD_MN1,i+1))) break;

double yearOpen = iOpen(NULL,PERIOD_MN1,i);

それから、現在の終値(Close[0]はどのタイムフレームで呼び出すかは関係ありません)とその年の始値との差を計算すればよいのです。インジケータとして必要なら、現在の年初来高値に水平線を表示し、その距離をpips単位でコメントとして書き出すものを添付します。
 
anton1:
mladenさん、こんにちは。

この "year-open "インディを修正していただけないでしょうか?このindiは、一年の始まりのラインだけでなく、何年も前の履歴を表示する必要があります。

いつもありがとうございます。

アントン

それはインジケータではありません。この投稿をもう一度読んでみてください。

 

こんにちは、mladenさん。

あなたは素晴らしく、親切な人です。

本当にありがとうございます。

よろしくお願いします。

アントン

note: ハイ、私の友人、mladenです。

mladen:
さあ、どうぞ。
 

oppsss すみません...

もしかしたら、「年輪開きの横線」をコーディングしてくれるかもしれないので、お願いします。

ありがとうございます。

anton

注:そのインディではyear-open-lineを表示していますが、今年のものだけです。過去のyear-open-lineを表示できるindiが必要です。

mladen:
これはインジケーターではありません。この投稿をもう一度読んでみてください。
 

mladenさん、こんにちは。

この "year-open "インディを修正していただけませんでしょうか?私はこのインディが、1つの年始行だけでなく、何年も前の履歴を表示する必要があります。

ありがとうございます。

アントン

mladen:
フェアアストル

これは、かなり迅速にその年のオープン価格を見つけることができます。

for (int i=0; i<12; i++) if (TimeYear(iTime(NULL,PERIOD_MN1,i))!=TimeYear(iTime(NULL,PERIOD_MN1,i+1))) break;

double yearOpen = iOpen(NULL,PERIOD_MN1,i);

それから、現在の終値(Close[0]はどのタイムフレームで呼び出すかは関係ありません)とその年の始値との差を計算すればよいのです。インジケータとして必要なら、現在の年初来高値に水平線を表示し、その距離をpips単位でコメントとして書き出すものを添付します。
 
anton1:
こんにちは、mladen。

この "year-open "インディを修正していただけないでしょうか?このindiは、一年の始まりのラインだけでなく、何年も前の履歴を表示する必要があります。

ありがとうございます、そしていつもありがとうございます。

アントン

Antonです。

過去のどの年の年初来高値も描画できるインジケータを添付します。NumYear = 0は今年の始値を 意味し、過去の始値を表示するにはこの数字を大きくする必要があります。また、同じチャートに複数の年を同時に表示させる場合は、IDの名前もそれに合わせて変更する必要があります。

このインジケータは、mladenさんの作品をベースに、若干の修正を加えたものです。私はコーディングは素人です。もし、うまくいかなかったら、それは私のコーディングが悪いのであって、多分、Mladenはこれに手を貸すでしょう。

よろしくお願いします。

ファレアストル

ファイル: