インジケータを無償で作成します - ページ 44

 

インジケーターに関するヘルプ


そのままで、2つのバッファにやり直したい


#property indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 DodgerBlue

#property indicator_maximum 1.4

#property indicator_level1 0

#property indicator_minimum -1.2


//------- 外部インジケータ・パラメータ --------------------------------.

extern int CCI_Period_0 = 14; // 現在の時間枠のCCI期間

extern int Level_0 = 100; // 現在のTFのCCIレベル

extern int TF_1 = 60; // 最初の時間枠の分数

extern int CCI_Period_1 = 14; // 最初のTFのCCI周期

extern int Level_1 = 100; // 最初のTFのCCIレベル

extern int TF_2 = 240; // 第二TFの分数

extern int CCI_Period_2 = 14; // 2番目のTFのCCI周期

extern int Level_2 = 100; // 2本目のTFのCCIレベル

extern int NumberOfBars = 10000; //バーの数(0-all)


//------- インジケータ・バッファ ------------------------------------------------

double buf0[];

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

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

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

void init()

{

IndicatorDigits(1)です。


SetIndexBuffer(0,buf0)を設定。

SetIndexLabel(0, "i-3CCI-h")を設定する。

SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2) を設定します。

SetIndexEmptyValue(0,0)を設定します。

}

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

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

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

void deinit()

{

Comment(")です。

}

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

//| カスタムインジケータ反復関数

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

void start()

{

double cci0,cci1,cci2;

int nb1,nb2;

int LoopBegin,sh;


if(NumberOfBars==0) LoopBegin=Bars-1;

else LoopBegin=NumberOfBars-1;

LoopBegin=MathMin(Bars-1,LoopBegin)となります。


for(sh=LoopBegin; sh>=0; sh--)

{

nb1=iBarShift(NULL, TF_1, Time[sh], False);

nb2=iBarShift(NULL、TF_2、Time[sh]、False);


cci0=iCCI(NULL, 0 , CCI_Period_0, PRICE_CLOSE, sh);

cci1=iCCI(NULL, TF_1, CCI_Period_1, PRICE_CLOSE, nb1);

cci2=iCCI(NULL, TF_2, CCI_Period_2, PRICE_CLOSE, nb2);


if(cci0>Level_0 && cci1>Level_1 && cci2>Level_2) buf0[sh]=1;

if(cci0<-Level_0 && cci1<-Level_1 && cci2<-Level_2) buf0[sh]=-1;

}

}

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


自分でやってみたが、まだダメだった。

こんな風にやってみた


#property indicator_separate_window

#property indicator_buffers 2

#プロパティ indicator_color1 Green

#property indicator_color2 レッド

#property indicator_maximum 1.4

#property indicator_level1 0

#property indicator_minimum -1.2


//------- 外部インジケータ・パラメータ --------------------------------.

extern int CCI_Period_0 = 14; // 現在の時間枠のCCI期間

extern int Level_0 = 100; // 現在のTFのCCIレベル

extern int TF_1 = 60; // 最初の時間枠の分数

extern int CCI_Period_1 = 14; // 最初のTFのCCI周期

extern int Level_1 = 100; // 最初のTFのCCIレベル

extern int TF_2 = 240; // 第二TFの分数

extern int CCI_Period_2 = 14; // 2番目のTFのCCI周期

extern int Level_2 = 100; // 2本目のTFのCCIレベル

extern int NumberOfBars = 10000; //バーの数(0-all)


//------- インジケータ・バッファ ------------------------------------------------

double ExtBuffer1[]。

double ExtBuffer2[]。

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

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

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

void init()

{

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

SetIndexStyle(0,DRAW_HISTOGRAM,0,2)を設定します。

//----

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

SetIndexStyle(1,DRAW_HISTOGRAM,0,2)を設定します。

}

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

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

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

void deinit()

{

Comment(")です。

}

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

//| カスタムインジケータ反復関数

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

void start()

{

double cci0,cci1,cci2;

int nb1,nb2;

int LoopBegin,sh;


if(NumberOfBars==0) LoopBegin=Bars-1;

else LoopBegin=NumberOfBars-1;

LoopBegin=MathMin(Bars-1,LoopBegin)となります。


for(sh=LoopBegin; sh>=0; sh--)

for(st=LoopBegin; st<0; st--)

{

nb1=iBarShift(NULL, TF_1, Time[sh], False);

nb2=iBarShift(NULL、TF_2、Time[st]、False);


cci0=iCCI(NULL, 0 , CCI_Period_0, PRICE_CLOSE, sh);

cci1=iCCI(NULL, TF_1, CCI_Period_1, PRICE_CLOSE, nb1);

cci2=iCCI(NULL, TF_2, CCI_Period_2, PRICE_CLOSE, nb2);


if(cci0>Level_0 && cci1>Level_1 && cci2>Level_2) buf1[sh]=1;

if(cci0<-Level_0 && cci1<-Level_1 && cci2<-Level_2) buf2[st]=-1;



というエラーが発生します。


結局、0より上と下の2つのバッファが必要なのです。


ファイル:
12121.jpg  42 kb
ere.mq4  6 kb
 

koziabrrr ! !!!あなたは自分のトピックを作成しました。トピックが増えました。 誰かがトピックを探し始めたらどうしますか?しかもトピックが多くて、探すのが大変です。トピックごとにわかりやすくするため。一番上のトピックは、初心者をサポートするためのものです。あなたの質問はそこにあるはずです。作成されたトピックは削除され、そこに私のコメントを考慮して書く!!!そして、あなたはまた、このスレッドに書いた - まあ、これは誇大妄想、彼の人格の価値の誇張された意見です。

注目を集めるには - 課題を説明する必要があります。1.2.そのインジケータは何をするのか、その用途は何か(エントリーポイントが表示される、トレンド、フラット、...)です。3) なぜ2つのバッファが必要なのか、何がより有用なのか(トレンド、フラット、エントリーポイントなどをよりよく表示するため)。その時こそ、みんなが急いでリファインするんだ!!! ......と。それは、彼らのためにも、あなたのためにもなるのです。友達になろう、分かち合おう。

 

ここで、やり直しです。傾向を示しているように思います。でも、それはズルい。

あと30分もすれば、売るべきだったことがわかるだろう...。

そして、そろそろ買い時だと......無言です。

 
みたいなのがいいんじゃないでしょうか。

またはMAinColorのようなもの

 
STARIJ:

ここで、やり直しです。傾向を示しているように思います。でも、それはズルい。

30分後には売るべきだったことがわかる...。

そして、そろそろ買い時だと......無言です。


はい、より良くなりました。デザインの変更に感謝します。しかし、私はまだどのように理解していない)))

 
koziabrrr: そうです、より良く見えます。デザインの変更に感謝します。しかし、私はまだ理解していない))
#property indicator_buffers 2
#property indicator_color2 Tomato
double buf0[], buf1[];  //------- Буферы индикатора ------   добавил второй буфер
void init() 
  {
..................
   SetIndexBuffer(1,buf1);
   SetIndexLabel(1,"Вниз");
   SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2);
   SetIndexEmptyValue(1,0);
  }

void start() 
  {
....................
..................

      buf0[sh]=0;buf1[sh]=0;
      if(cci0>Level_0 && cci1>Level_1 && cci2>Level_2) buf0[sh]=1;
      if(cci0<-Level_0 && cci1<-Level_1 && cci2<-Level_2) buf1[sh]=-1;
    }
}
 
STARIJ:

STARIJ

やっているのですが、全体がまとまりません。問題がわかっているときはいいのですが、わからないときは、どんな些細なことでも1日1回です。

 
koziabrrr:


やっているのですが、全体がまとまりません。問題がわかっているときはいいのですが、わからないときは、どんな些細なことでも1日1回です。

...そして、毎日が、フォーラムでの解決ではなく、自分の仕事を通してのみ得られる貴重な経験です。
 
Artyom Trishkin:
...そして、毎日が、掲示板での判断ではなく、自分の仕事からしか生まれない貴重な経験です。

This is Yes!


STARIJ:ありがとうございます!!!!


問題を解決しました)))

 

ユーリさん、こんにちは。

インジケータの説明:3本のロウソクが同じレベル、またはほぼ同じレベルに保たれた状態で起動すると、メールにアラートが送信され、音が鳴った。また、私がキャンセルするまで、画面上に機器と時間枠が表示されました。添付ファイルをご覧ください。

ファイル:
11.png  25 kb
12.png  24 kb
13.png  24 kb
14.png  27 kb