MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1683

 
はい、もちろんです。最初:0、最後:OrdersTotal()-1
 
Aleksei Stepanenko #:
はい、もちろんです。最初:0、最後:OrdersTotal()-1

ああ、配列があるんだ、本当にゼロから......。

 
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
                                                              
extern int RSIPERIOD=3;
extern double KOEFF1=2.5;
extern double KOEFF2=1.86; 
                                                                                                                                                                  
double mass0[],Buf1[],Buf2[];
double D10,D11,D12;
                                                                                                                                                                                                                                                                                                                                             
int init()
  {
   IndicatorDigits(0);
   string short_name="RSITEST";           
   IndicatorShortName("RSITEST");
   
   D10=RSIPERIOD;D11=D10*KOEFF1;D12=D11*KOEFF2;;
 
   SetIndexBuffer(0,mass0);
   SetIndexLabel (0,"Stoch "+Ds_0(D10)+")\n");
   SetIndexBuffer(1,Buf1);
   SetIndexLabel (1,"Stoch ("+Ds_0(D11)+")\n");
   SetIndexBuffer(2,Buf2);
   SetIndexLabel (2,"Stoch ("+Ds_0(D12)+")\n");
   return(0);
  }
                                                                                                               
int start()
  {
   if(Bars<=RSIPERIOD) return(0);
   int ExtCountedBars=IndicatorCounted();
   if (ExtCountedBars<0) return(-1);
   if (ExtCountedBars>0) ExtCountedBars--;
   for(int i=0;i<Bars-RSIPERIOD;i++)
      {
       mass0[i] = iRSI(NULL,0,D10,0,i);
       if(iRSI(NULL,0,D11,0,i)>iRSI(NULL,0,D12,0,i))
       Buf1[i] = Buf2[i];
       Buf1[i] = DRAW_LINE;
       Buf2[i] = EMPTY_VALUE;
      }
   return(0);
  }

string Ds_0(double DOUBLE) {return(DoubleToStr(DOUBLE,0));}
MakarFX #:
あなたの場合、それは3行のうち2つだけをうまくいった、私は手元にあるタスクにそれを適応させ、それは最初の行は、与えられた条件(代わりに赤と青の行が1行だった - そしてそれは赤だった)と他の2つ(赤と青)のレベルを(それが必要なように)滞在ことが判明しました。RSI2>RSI3、RSI2<RSI3 なら青)が直線になり、RSIであることを知らないように赤だけになる
スクリーンショットを添付します。
ファイル:
 
Andrey Kipyatkov #:
あなたの場合、それは3行の2つだけであることが判明し、私は問題にそれを適応させ、それは最初の行は(それが必要なように)滞在し、与えられた条件(代わりに赤と青の線が単一の行だった - そしてそれは赤だった)と他の2つの(赤と青)のレベルが判明しました。RSI2>RSI3、RSI2<RSI3 なら青)が直線になり、RSIであることを知らないように赤だけになる スクリーンショットを添付します。

Buf1とBuf2のイコライジングはどのように行うのですか?

あなたの状態では、それらは0です

 
Andrey Kipyatkov #:
あなたの場合、それは3行のうち2つだけをうまくいきました、私は手元にあるタスクにそれを適応させ、それは最初の行は、与えられた条件(代わりに赤と青の行は1つの行だった - そしてそれは赤だった)と他の二つの(赤と青)のレベルが(それがあるように)滞在することが判明しました。RSI2>RSI3、RSI2<RSI3 なら青)が直線になり、RSIであることを知らないように赤だけになる スクリーンショットを添付します。


ファイル:
RSITEST-1.mq4  4 kb
 
トレーディングロボットとExpert Advisorの違いについて教えてください。
 
Daniil Osipov #:
皆さん、こんにちは。トレーディングロボットとトレーディングアドバイザーの違いについて教えてください。
同じものを使っている...言葉遊びのようなもの
 
MakarFX #:

コードに協力してくれてありがとう、でも難しくなければポイントを理解したいです。すべてを1行で書くと、
Buf0[i] = iRSI(NULL,0,D10,0,i); - この文字列で、ゼロ配列が上記のパラメータを持つrsy行であることを指定します。
if(iRSI(NULL,0,D11,0,i)>iRSI(NULL,0,D12,0,i)) ならば、パラメータD11の Rsaiは >D12 であると言うことです。
Buf1[i] = Buf0[i]; そして、パラメータD11とD10で psiをマッチング(1行を他の行に重ねる)します。
さもなくば
Buf1[i] = EMPTY_VALUE; で、パラメータD11で xyをレンダリングしない ように指示するのです。
しかし、3行で作業する場合
Buf0[i] = iRSI(NULL,0,D10,0,i); 1
行を
描くにはどうすればよいかと言う
ことです。
Buf1[i] = (iRSI(NULL,0,D11,0,i)+iRSI(NULL,0,D12,0,i))/2; 次に2で加算、除算します。2と3 - このアクションは、私にはあまり明確ではありません。なぜなら、以前は配列を等化し、1つの行を他の行に重ね合わせていましたが、なぜこれが構文になるのか。
if(iRSI(NULL,0,D11,0,i)>iRSI(NULL,0,D12,0,i)) ならば、この例を繰り返す。パラメータD11
Rsai>D12
Buf2[i] = Buf1[i]; とし、3
目と
2
目を
同一
視しているのでは?
else
Buf2[i] = EMPTY_VALUE; で、2行目を描かないように指示する

. 私は、あなたが言語をどのように「パラメータ化」し、なぜ配列を追加し、2番目のケースで2で割るのかを正しく理解
しました。

 
MakarFX #:
同じものを使っている...言葉遊び
Vitaly Muzichenko(ヴィタリー・ムジチェンコ #:

言葉遊びのようなもの。

隣のスレッドから。結託することなく...

 
Andrey Kipyatkov #:
コードでお世話になりましたが、差し支えなければ、本質を理解したいです。すべてを1行で書くと、

アンドリュー、まず最初の投稿に ある条件を定義しよう

私は赤と青の 線の代わりに コードで処方する方法があるかどうかを明らかにしたかった(画像内のRSI2とRSI3(同様に添付)、それぞれ)1行だった- そしてそれはRSI2>RSI3とRSI2 <RSI3 なら青なら赤だった

ということで、赤と青の代わりに、これらの線の平均が得られます。

Buf1[i] = (iRSI(NULL,0,D11,0,i)+iRSI(NULL,0,D12,0,i))/2;

で、この行はデフォルトで赤色になっています。

さらに、この条件を満たした場合

if(iRSI(NULL,0,D11,0,i)>iRSI(NULL,0,D12,0,i))

MT4ではできないので、ラインカラーは変更しません。

別の色で別の線を取り、重ね合わせる。

Buf2[i] = Buf1[i];