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

 

こんにちは。

アドバイスが必要です。端末には、複数のインジケータをミックスするオプションがあります。この場合、範囲を固定することが可能です。

例えば、CCI min=-300 max=300、RSI min=0 max=100などです。

Expert Advisorで2つの指標を掛け合わせる実装は可能でしょうか?CCIがRSIを下から上へクロスしたとする⇒ベイオーダーを建てる。

可能なのでしょうか?

それとも、これらの指標は値の範囲が 異なるため、不可能なのでしょうか?rsiは値の範囲が0から100に限定されており、cciは値がプラスにもマイナスにもなり、最大値/最小値に限定されない......ということです。

 
lomaxx7:

こんにちは。

アドバイスが必要です。端末には、複数のインジケータをミックスするオプションがあります。この場合、範囲を固定することが可能です。

例えば、CCI min=-300 max=300、RSI min=0 max=100などです。

Expert Advisorで2つの指標を掛け合わせる実装は可能でしょうか?CCIがRSIを下から上へクロスしたとする⇒ベイオーダーを建てる。

可能なのでしょうか?

それとも、これらの指標は値の範囲が 異なるため、不可能なのでしょうか?rsiは値の範囲が0から100に限定されており、cciは値がプラスにもマイナスにもなり、最大値/最小値に限定されない......ということです。

もし、この目的のために独自のiRSIを作成するのであれば、iRSIの値から50を引いて、ゼロレベルのインジケータを得ることができます。ひとつ疑問が残るのは、このように指標を混在させることに何の意味があるのか、ということだ。

 
Alexey Viktorov:

まさにこの目的のために自分でiRSIを書くと、iRSIの値から50を引いて、ゼロレベルのインジケータを得ることができるのです。ひとつ疑問が残るのは、このように指標を混在させることに何の意味があるのか、ということだ。

ありがとうございます。工夫が必要なこともあります。
 

lomaxx7:

2つの指標をクロスさせる機能をEAに実装することは可能でしょうか?CCIがRSIを下から上へクロスしたとする⇒ベイオーダーを開く...。

これは可能なのでしょうか?

それとも、これらの指標は値の範囲が 異なるため、不可能なのでしょうか?rsiでは値の範囲が0から100に限定され、cciでは値が正でも負でもよく、最大値/最小値に限定されない...。

複雑ではありません。 RSI 通してCCI 計算することもできますし、 その逆も可能です。ドキュメントを見てください。各指標には、どのような価格が使用できるかの説明があります。

https://www.mql5.com/ru/docs/indicators/irsi

適用価格

[in]価格中古 . 価格定数ENUM_APPLIED_PRICEの いずれか、または他のインジケータのハンドル である可能性があります。

例えば、RSIのCCI ハンドル 代用 します。

int OnInit()
h_cci=iCCI(_Symbol, _Period, cci_ma_period, cci_applied_price);
h_rsi=iRSI(_Symbol, _Period, rsi _ma_period, h_cci);
Далее
void OnTick() 
if(CopyBuffer(h_cci,0,0,to_copy, cci_buf)<=0) return(0);
if(CopyBuffer(h_rsi,0,0,to_copy, rsi _buf)<=0) return(0);
Далее сравниваете значения:
if(cci_buf>rsi_buf) {...ваши действия; ...buy; ...sell;} 
else
if(cci_buf<rsi_buf) {...ваши действия; ...buy; ...sell;}

この場合、次のオシレータはすでに前のオシレータの値を使用しているので、値の範囲は重要ではありません。

Документация по MQL5: Технические индикаторы / iRSI
Документация по MQL5: Технические индикаторы / iRSI
  • www.mql5.com
Технические индикаторы / iRSI - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
 //+------------------------------------------------------------------+
class A
  {
public: int       propA;
public:
                     A(void) {propA = 15;};
                    ~A(void) {};
  };
//+------------------------------------------------------------------+
class B: public A
  {
public:
                     B(void){};
                    ~B(void){};
  };
//+------------------------------------------------------------------+
void OnStart()
  {
   B newObj;
   GetA(newObj);
//---
   //B newObjArray[3];
   //GetA_Array(newObjArray);
  }
//+------------------------------------------------------------------+
void GetA(A &obj)
  {
   Print(obj.propA);
  }
//+------------------------------------------------------------------+
void GetA_Array(A &obj[])
  {
   for(int i=0;i<ArraySize(obj);i++)
      Print(obj[i].propA);
  }
//+------------------------------------------------------------------+

OnStart()の残りの行のコメントを解除すると、「newObjArray - parameter conversion not allowed」と表示されます。

なぜなのか、どうすれば直るのか、2つの疑問があります。
 

ターミナルからポジションレポートを取得する方法を教えてください。

ターミナルでは正常な位置が表示されるのですが、Excelのレポートではパーツに分かれていて、私には不便なことなのです。

 

こんにちは2017.06.30_18:11 GMT+3です。フォーラムの目利きMT5のストラテジーテスターで EAをテストしてみました。取引の開始と終了を行うが、取引の開始と終了の最初の条件でのみ行われるようだ。そこで、デモ口座でEAをテストしてみることにしました。しかし、デモ口座のチャートからEAがすぐに消えてしまう。それはデモ口座でエラーを持っていることが判明:2017.06.30 18:08:17.878 Late_raw3 (GOLD,M1) array out of range in 'Cross.mqh' (18,12).
不思議なことに、ストラテジーテスターでは、そのようなエラーは見つかりませんでした。エラーを探そうとしたが、理解できなかった。というような間抜けな質問。とても分かりにくかったです。MetaQuotesのプログラマーがこのケースで失敗したのでしょうか?標準のMoving Average.mq5 Expert Advisorにも同じコードがあります(そちらからコピーしました)。デモ口座ではエラーにならない。しかし、取引されることはなかった。М1でトレードしました。しかし、私は長くは待っていません。何が問題なのか?回答お待ちしています。楽しみにしています。徹底して全てではありませんが、ファイルを添付します。18:26 GMT+3。いろいろと変更してみましたが、結果は2つで、配列の外に出てしまうか、「インジケータデータがありません」というエラーを書き込んでしまいます。また、ストラテジーテスターの日記では、「オーバーシュート」がどのように得られるかを見ることができます。最初の取引の始値が取られます。2回目の取引の始値とは異なります。この「ずれ」(私の130点より大きい)を「オーバーシュート」といいます。MetaQuotesのプログラマーにも「ありがとう」と言うべき?飽きさせることはありません。何をするにも遅い。Expert Advisorを早く完成させようと思っています。18:45 GMT+3。何か不明な点があれば、遠慮なくご連絡ください。以上です。18:51 GMT+3。

ファイル:
 
Николай Никитюк:

こんにちは2017.06.30_18:11 GMT+3です。フォーラムの目利きMT5のストラテジーテスターで EAをテストしてみました。取引の開始と終了を行うが、取引の開始と終了の最初の条件でのみ行われるようだ。そこで、デモ口座でEAをテストしてみることにしました。しかし、デモ口座のチャートからEAがすぐに消えてしまう。それはデモ口座でエラーを持っていることが判明:2017.06.30 18:08:17.878 Late_raw3 (GOLD,M1) array out of range in 'Cross.mqh' (18,12).
不思議なことに、ストラテジーテスターでは、そのようなエラーは見つかりませんでした。エラーを探そうとしたが、理解できなかった。というような間抜けな質問。とても分かりにくかったです。MetaQuotesのプログラマーがこのケースで失敗したのでしょうか?標準のMoving Average.mq5 Expert Advisorも同じコードです(私はそこから書き直しました)。デモ口座ではエラーにならない。しかし、取引されることはなかった。М1でトレードしました。しかし、私は長くは待っていません。何が問題なのか?回答お待ちしています。楽しみにしています。徹底して全てではありませんが、ファイルを添付します。18:26 GMT+3。いろいろと変更してみましたが、結果は2つで、配列の外に出てしまうか、「インジケータデータがありません」というエラーを書き込んでしまいます。また、ストラテジーテスターの日記では、「オーバーシュート」がどのように得られるかを見ることができます。最初の取引の始値が取られます。2回目の取引の始値とは異なります。この「ずれ」(私の130点より大きい)を「オーバーシュート」といいます。MetaQuotesのプログラマーにも「ありがとう」と言うべき?飽きさせることはありません。何をするにも遅い。Expert Advisorを早く完成させようと思っています。18:45 GMT+3。何か不明な点があれば、遠慮なくご連絡ください。以上です。18:51 GMT+3。


今のところ、"rates" (file "Cross.mqh", line 18, cursor position 12)はグローバルレベルのどこかで宣言されているようです - つまり、すべての疑問が解決します。"この「率」は、実際にはどのように記入されているのですか?

 

2つの曲線の交わる角度を計算したいのですが。角度そのものを求めるのではなく、それが鋭角なのか鈍角なのかを確認する作業である。こんなのも描きました。Bの正接とCの正接を求めることができる。この接線を知って、角度Aが鋭角かどうかを判断するにはどうしたらいいのでしょう。三角関数が苦手な私を助けてください。もちろん、角度そのものを求めなければ、スケールの違いから、その数値は不十分なものである。


 
igorbel:

2つの曲線の交わる角度を計算したいのですが。角度そのものを求めるのではなく、それが鋭角なのか鈍角なのかを確認する作業である。こんなのも描きました。Bの正接とCの正接を求めることができる。これらの接線を知って、角度Aが鋭角かどうかを判断するにはどうしたらよいのでしょうか。三角関数が苦手な私を助けてください。もちろん、角度そのものを求めなければ、スケールの違いから、その数値は不十分なものである。


接線を求めるには、直角三角形があるか?
理由: