初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 543

 
edutak:

すみません、よくわからないんです。ローソク足の終値が 指標の70レベルより大きくないといけません。

また、レベル70=70とありますが、これは何に相当するのでしょうか?

Close[1]は、商品の価格を指します。この場合、1本目のバーの終値となります。しかし、指標にはならない。この指標は、価格の微分値である。

あなたの場合、RSIは0から100の範囲で、価格は1.43406です。70を大きく下回っていますね。

レベル70は指標の値です。また、Close[1]は1本目のバーの終値です。両者はまったく別物であり、比較することはできない。メートルでキログラムのように。

 
Vitalii Ananev:

Close[1]は、商品の価格を指します。この場合、1本目のバーの終値です。しかし、指標にはならない。この指標は、価格の微分値である。

あなたの場合、RSIは0から100の範囲ですが、価格は画像の1.43406のようなものです。70を大きく下回っていますね。

なるほど、ありがとうございます!それでやり直したところ、ちゃんと開けたようですが、なぜレベル50の表示が反映されないのでしょうか?

void OnTick()
  {
   int kolpos=0;
   double rsi=0,uroven70=70,uroven30=30,uroven50=50;
   rsi=iRSI(Symbol(),0,10,PRICE_CLOSE,1);
   for(int pos=0; pos<OrdersTotal(); pos++) 
     {
      OrderSelect(pos,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
         kolpos++;
     }
   if(kolpos==0)
     {
      if((rsi>uroven70) &&   (Open[1]<uroven70) && Volume[0]<3)
         OrderSend(Symbol(),OP_BUY,Lots,Ask,30,0,0,"",Magic,0,clrGreen);
      if((rsi<uroven30) &&   (Open[1]>uroven30) && Volume[0]<3)
         OrderSend(Symbol(),OP_SELL,Lots,Bid,30,0,0,"",Magic,0,clrRed);
     }
 }
 

これでよいのでしょうか?アドバイザーは正しく働きますか?

void OnTick()
  {
   int kolpos=0;
   double rsi=0,uroven70=70,uroven30=30,uroven50=50;
   rsi=iRSI(Symbol(),0,10,PRICE_CLOSE,1);
   for(int pos=0; pos<OrdersTotal(); pos++) 
     {
      OrderSelect(pos,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
         kolpos++;
     }
   if(kolpos==0)
     {
      if (rsi>uroven70)// && Volume[0]<3)
         OrderSend(Symbol(),OP_BUY,Lots,Ask,30,0,0,"",Magic,0,clrGreen);
      if (rsi<uroven30)// &&   (Open[1]>uroven30) && Volume[0]<3)
         OrderSend(Symbol(),OP_SELL,Lots,Bid,30,0,0,"",Magic,0,clrRed);
     }
 }
 
edutak:

なるほど、ありがとうございます!それでやり直したところ、ちゃんと開けたようですが、なぜレベル50の表示が反映されないのでしょうか?

を<に変えただけで、何を得たのかわからない。あなたがやり直したこと、まったくナンセンスです。リアルに載せようなんて思わないでください。

50のレベルは、インジケーター自体に設定されています。Expert Advisorは、このレベルがインジケータのどこにあるのかを知っています。

 
edutak:

これでよいのでしょうか?アドバイザーは正しく働きますか?

そのほうがいい。また、フィルターを作成する必要があります。上昇トレンド があれば買い、下降トレンドがあれば売りの取引を開始する。
 
Vitalii Ananev:

を<に変えただけで、何を得たのかわからない。あなたが変えたことは、まったくナンセンスです。リアルに付けようなんて思わないでください。

レベル50はインジケーター自体に設定されています。Expert Advisorは、このレベルがインジケータのどこにあるのかを知っています。

ここで、正しく開いたつもりなのですが、レベル50は表示されず、30と70は表示されています。
 
Vitalii Ananev:
そのほうがいい。別のフィルターを作る。上昇トレンド があるときだけ買い、下降トレンドがあるときだけ売りの取引を開始することになる。

その傾向はこうだ。そうだろ?

if (rsi>uroven70)

if (rsi<uroven30)
 
edutak:
ここで、ちゃんと開いたつもりなのですが、レベル50が見えません。 30と70はあるのですが。
レベルは、インジケーター 設定で手動で設定する必要があります。デフォルトではレベル50は存在しない。上の写真で示しました。
 
edutak:

その傾向はこうだ。そうだろ?

RSIはオシレーターであり、トレンドを示すものではありません。

MAなど別のトレンド指標を 追加する。

double MA = iMA(......)

if (rsi>uroven70 && Close[1]<MA)
{
 ///SELLL
 
}

if (rsi<uroven30 && Close[1]>MA)
{
///BUY

}
 
トレーダーが設定したロット数で取引が自動的にコピーされず、より大きな数量でコピーされた場合、どうすればよいですか。
理由: