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

 
Artyom Trishkin:

この場合、「より良い」ではなく、まさに必要なものです。これは標準的な取引関数のラッパークラスです。複数のウィザードを保存することはできません。そのため、新しいマジックを使ってポジションを開く必要があるときは、その都度マジックを設定する必要があります。

一般的には以下のような順序になります。

  • ポジションはマジック1でオープンする必要があります。マジック1を設定すると、それ以降のポジションはマジック1になります。
  • マジシャン2でポジションを開く必要があります。マジシャン2を設定すると、次のすべてのポジションにマジシャン2が設定されます。
  • マジック3でポジションを開くことが必要です。マジック3を設定し、次のポジションはすべてマジック3になります。

など...

なぜそのような言い方をしたかというと、人によっては違う意見もあるでしょうし、それも効果的だからです。

 
Artyom Trishkin:

この場合、「より良い」ではなく、まさに必要なものです。これは標準的な取引関数のラッパークラスです。複数のウィザードを保存することはできません。そのため、新しいマジックを使ってポジションを開く必要があるときは、その都度マジックをセットする必要がある。

一般的には以下のような順序になります。

  • ポジションはマジック1でオープンする必要があります。マジック1を設定すると、それ以降のポジションはマジック1になります。
  • マジシャン2でポジションを開く必要があります。マジシャン2を設定すると、次のすべてのポジションにマジシャン2が設定されます。
  • マジック3でポジションを開くことが必要です。マジック3を設定し、次のポジションはすべてマジック3になります。

など...

こんな感じでしたね。

if(BuyCount()>0)
        {
         Print("Уже есть позиция на покупку !!!");
         return; // не добавлять к открытой позиции на покупку
        }
         SL=NormalizeDouble(latest_price.ask - STP*_Point,_Digits);
         TP=NormalizeDouble(latest_price.ask + TKP*_Point,_Digits);
         m_trade.SetExpertMagicNumber(Magic);
         m_trade.Buy(lots1,_Symbol,0,SL,TP,"Lag-MA_IAMA(conversely)_2.5.6.7 + 2");
         m_position.Select(_Symbol);
           {
            ulong myMagic=m_position.Magic();
            Print(" Открыта поза Бай с магиком № ",myMagic,", И спредом ",SymbolInfoInteger(_Symbol,SYMBOL_SPREAD));
           }

m_trade.SetExpertMagicNumber(Magic);ポジションを開く 前または後にm_trade.Buy(lots1,_Symbol,0,SL,TP,"Lag-MA_IAMA(conversely)_2.5.6.7 + 2") を実行します

 
Vladimir Karputov:

CTradeクラスにはGetExpertMagicNumber メソッドがないため、トレード操作 後にこのコードをプリントアウトしてください。

こうすることで、両方のEAが異なる魔法を持っているかどうかをチェックすることができます。

ありがとうございます、より便利になりました。CPositionInfoクラスは必要ない、位置を選択する必要がない。テスターでは動きますが、アカウントでの開発を待つ必要があります。

 

SymbolInfoSessionQuoteと SymbolInfoSessionTradeの 違いについて教えてください。
あるいは、同じように、クォートセッションとトレードセッションの違いは何ですか?
タ━━━━(゚ ゚)━━━━!そして、session_indexとは// セッション番号
番号のついたセッションがあるのか?どんな原理で番号を振っているのか、どこに書いてあるのか。

 

MQL5でプログラミングする場合、標準のCExpertSignalクラスのvoid Ignore(long value) { m_ignore=value; }メソッドをカスタムTrailingクラスで使用する方法を教えて下さい。どうすればアクセスできますか?

私は、ポジションをオープンしたりクローズしたりするメソッドを提供するカスタムシグナルクラスを持っています。しかし、Trailingでは、別の方法でポジションを維持したいと思いました。MySignalとMyTrailingを別々に作成した場合、先に発生した条件によってポジションがクローズされます。Trailing条件が先に発動している場合は、問題ありません。ただ、MySignalから新しい(反転)シグナルが来てポジションが反転することもあり、その時はクローズせず、新たにオープンした後にTrailingを伴って欲しいです。ベースクラスを調べてみたところ、ベースとなるシグナルクラスのm_ignoreが原因になっているような気がしています。適切なフィルタで値1を代入すれば、その通りに動作するようです。Expert AdvisorクラスのOnInitにfilter0.Ignore(0)を追加しています。しかし、私はOOPの初心者で、CExpertSignalクラスから 継承されていないMyTrailingクラスでこの値を変更する方法を理解していません(仮に filter0.Ignore(1) とします)。どうしたらよいかアドバイスをお願いします。

実は、もっと一般的な質問ですが、子孫ではない2つのクラス間で情報を渡すにはどうしたらいいのでしょうか?トレーリングクラスからシグナルクラスへ情報を転送する方法は?おそらく、グローバル変数を作り、それを介して通信することができるのでしょう。しかし、これはOOPにおけるprotected memberの論理に照らし合わせると、かなり倒錯しているように見えます。


 
User_mt5:

SymbolInfoSessionQuoteと SymbolInfoSessionTradeの 違いについて教えてください。
あるいは、同じように、クォートセッションとトレードセッションの違いは何ですか?
タ━━━━(゚ ゚)━━━━!そして、session_indexとは// セッション番号
番号のついたセッションはあるのか?どのような原理で番号が振られているのか、どこに書いてあるのか。

わかりやすく言うと

クォートセッション - クォートが行われている(ただし、取引が禁止されている場合もある)。

取引セッション(クォートセッション内、またはクォートセッションと同時)-取引可能です。

セッションインデックス - サーバー時間 00:00:00-23:59:59 のセッションのインデックス番号(区切りがある場合、1より大きい)。

各シンボルの仕様については、市場概要でご確認ください。

 
Kirill Belousov:

わかりやすく言うと

クォーテーションセッション - クォーテーションが行われている(ただし、取引が禁止されている場合もある)。

取引セッション(クォートセッション内、またはクォートセッションと同時)-取引可能です。

セッションインデックス - サーバー時間 00:00:00-23:59:59 のセッションのインデックス番号(ギャップがある場合、セッションは 1 よりも大きくなります)。

市場概要の各シンボルの仕様をご覧ください。

分かりやすい説明ありがとうございます。あなたのおかげで助かりました。

 
Vladimir Karputov:

Centシグナルは、今や無料でなければできない。

プロフィールの名前を編集できないのはなぜですか?

 
tsd Tsepkov:

なぜ、プロフィールの名前を編集できないのですか?

今確認したところ、信号名は完全に編集可能です。

 
Vladimir Karputov:

今確認したところ、信号名は完全に編集可能です。

ファーストネームのことですが、実名に変更しなければならないと書いてありますが、うまくいきません

理由: