どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 195

 

こんにちは。

プロフェッショナルの力を借りたい

新しいローソク 足が出た後にラインを引き直す機能を実装する方法を教えてください。

このインジケータの考え方は非常にシンプルで、直前のローソクの高値と安値を見て、高値に50ポイント、安値に50ポイントを加算していきます。

ありがとうございます。

ファイル:
help.mq4  1 kb
 
Zhunko:
図書館の ことです。図書館には、そのためのすべてが揃っている。4.3項および4.6項。


ヴァディム:アネクドート

動物看護師は注射器で牛に人工授精を行い、その場を立ち去ります。 出口で待っていた美女がキスを求めてくる。

 
neon51r:

こんにちは。

プロフェッショナルの力を借りたい

新しいローソク足が出た後にラインを引き直す機能を実装する方法を教えてください。

このインジケータの考え方は非常にシンプルで、直前のローソクの高値と安値を見て、高値に50ポイント、安値に50ポイントを加算していきます。

ありがとうございます。



教科書に載っていたものです。

//--------------------------------------------------------------------
// userindicator.mq4 
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
#property indicator_chart_window    // Индик. рисуется в основном окне
#property indicator_buffers 2       // Количество буферов
#property indicator_color1 Blue     // Цвет первой линии
#property indicator_color2 Red      // Цвет второй линии
 
double Buf_0[],Buf_1[];             // Объявление массивов (под буферы индикатора)
//--------------------------------------------------------------------
int init()                          // Специальная функция init()
  {
   SetIndexBuffer(0,Buf_0);         // Назначение массива буферу
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
   SetIndexBuffer(1,Buf_1);         // Назначение массива буферу
   SetIndexStyle (1,DRAW_LINE,STYLE_DOT,1);// Стиль линии
   return;                          // Выход из спец. ф-ии init()
  }
//--------------------------------------------------------------------
int start()                         // Специальная функция start()
  {
   int i,                           // Индекс бара
       Counted_bars;                // Количество просчитанных баров 
//--------------------------------------------------------------------
   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      Buf_0[i]=High[i]+50*Point;             // Значение 0 буфера на i-ом баре
      Buf_1[i]=Low[i]-50*Point;              // Значение 1 буфера на i-ом баре
      i--;                          // Расчёт индекса следующего бара
     }
//--------------------------------------------------------------------
   return;                          // Выход из спец. ф-ии start()
  }
//---------------------------------------------------------------------
 

こうぶんをたすける

int k=OrdersTotal();

//+--注文がなければ設定する
if (k==0) {OrderSend(Symbol(),OP_BUYSTOP,v,PriceBs+Tp*Point,0,Sl,PriceBs+2*Tp*Point,NULL,mn,0,Red)

OrderSend(Symbol(),OP_SELLSTOP,v,PriceSs-Tp*Point,0,Sl,PriceSs-2*Tp*Point,NULL,mn,0,Gold) ; } ←クリックすると拡大します。


は2つとも注文するのですか、それとも1つだけですか?

注文がない場合、フクロウが2つの注文を保留 する必要があります。

 
sdm:

...

は、両方のワラントが置かれるのでしょうか、それとも1つでしょうか?



注文は0件、1件、2件となります。
 
neon51r:

こんにちは。

プロフェッショナルの力を借りたい

新しいローソク足が出た後にラインを引き直す機能を実装する方法を教えてください。

このインジケータの考え方は非常にシンプルで、直前のローソクの高値と安値を見て、高値に50ポイント、安値に50ポイントを加算していきます。

ありがとうございます。


新しいキャンドルが 届くと同時に、再描画します。

 
Integer:

0、1、2オーダーになります。

注文がないときは、両方の注文を入れる必要があります。

チュートリアルによると、注文がある場合のみ1つ目の注文と2つ目の注文を置くようですが、条件を満たした場合は両方、条件を満たさない場合はどちらも置かないようにするにはどうしたらよいでしょうか。

 
sdm:

注文がないときに、両方の注文を出すようにしてほしい。

チュートリアルでは、注文がある場合のみ、最初の注文と2番目の注文を出すように見えますが、条件を満たした場合は両方を出し、条件を満たさなかった場合は何も出さないようにするにはどうしたらいいのでしょうか?


条件としては、両方の要求がセットされるのはOKだが、両方が実行されることは誰も保証できない。
 

int x=0, a=0, b=0

if (x==0) {.

}

aが値1、bが値1となるように、括弧の中にどう書けばいいのでしょうか?

 
sdm:

int x=0, a=0, b=0

if (x==0) {.

}

aが値1、bが値1となるように、括弧の中にどう書けばいいのでしょうか?


一番簡単なのは{a=1; b=1}と書くことですが、本当に計算したいのであれば、素敵な複数ページの計算式を考案することができます。