"ダミー "からの質問 - ページ 137

 
alph:

5~6時間後にポジションを決済 するEAのコードを教えてください。またはリンクを教えてください。

興味を持たれた方は、ぜひご自身で試してみてください。まず、PositionSelect() 関数で、オープンポジションの有無を確認し、成功したら PositionGetInteger(POSITION_TIME)でオープンポジション時間を調べ、5〜6時間という 条件を確認します。 ポジションを閉じる時には、ポジションの種類(ENUM_POSITION_TYPEPositionGetInteger(POSITION_TYPE)とそのボリュームPositionGetDouble(POSITION_VOLUME )を調べます。 そして、同じ数量の反対注文を設定します。MQL5Include︓Trade .mqh︓PositionClose(const string symbol,ulong deviation=ULONG_MAX) で ポジションクローズの例を見る ことができます。

 
joo:
ありがとうございます。それが私たちに必要なことのように思えます。

そうでもないんです。

マウスクリック」イベントを取得するには、OnChartEvent() を使用する必要がありますが、スクリプトで使用することはできません、どうすればよいですか?では、普遍的な機能は存在しないのですか?

 
joo:

そうでもないんです。

マウスクリック」イベントを取得するには、OnChartEvent()を使用する必要がありますが、スクリプトで使用することはできません、どうすればよいですか?では、普遍的な機能は存在しないのですか?

次に、GetKeyState + GetPosition + グラフィカルオブジェクトの既知の座標を使用します。
 
sergeev:
次に、GetKeyState + GetPosition + グラフィカルオブジェクトの既知の座標を使用します。

VinApi?

以上、ファイルをブラウズして一覧から選択する万能機能(ミニファイルマネージャーのようなもの)を作る気が失せてしまいましたが、いかがでしょうか?:(

 
joo:

WINAPI?

以上、一覧からファイルをブラウズして選択するユニバーサルな機能(ミニファイルマネージャーのようなもの)を作る気が失せてしまったのです。:(

なぜスクリプトなのでしょうか?関数を作って、ユーザーの選択を1回以上待つにはどうしたらいいのでしょうか?
 
sergeev:
では、なぜ台本なのでしょうか?
なぜなら、ダニが鳴いても鳴かなくても気にならないからです。
 
Yedelkin:

MQL5Include︓Trade .mqh︓PositionClose(const string symbol,ulong deviation=ULONG_MAX) で、 ポジションを閉じる メソッドの例を見ることができます。

ありがとうございます。

でも、今のところ授業は理解できていません。理解できているのは、たいていどこかで見て理解したことが原因ですが。

 
joo:
というのも、彼はダニの鳴き声など気にしないのです。
専門家は気にしないのでしょうか。
 
alph:

でも、授業だと、得られるものはたいていどこかで見てわかったという代物で、まだコツがつかめていないんです。

まあ、どんなクラスメソッドも ただのコードですからね。ここでこのコードを解析してみてください。

   MqlTradeRequest   m_request={0};         // request data
   MqlTradeResult    m_result={0};          // result data
   MqlTradeCheckResult m_check_result={0};  // result check data
   bool   partial_close=false;
   int    retry_count  =10;
   uint   retcode      =TRADE_RETCODE_REJECT;
  
     do
     {
      //--- checking
      if(PositionSelect(symbol))
        {
         if((ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
           {
            //--- prepare request for close BUY position
            m_request.type =ORDER_TYPE_SELL;
            m_request.price=SymbolInfoDouble(symbol,SYMBOL_BID);
           }
         else
           {
            //--- prepare request for close SELL position
            m_request.type =ORDER_TYPE_BUY;
            m_request.price=SymbolInfoDouble(symbol,SYMBOL_ASK);
           }
        }
      else
        {
         //--- position not found
         m_result.retcode=retcode;
         return(false);
        }
      //--- setting request
      m_request.action      =TRADE_ACTION_DEAL;
      m_request.symbol      =symbol;
      m_request.deviation   =(deviation==ULONG_MAX) ? m_deviation : deviation;
      m_request.type_filling=m_type_filling;
      m_request.volume      =PositionGetDouble(POSITION_VOLUME);
      //--- check volume
      double max_volume=SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX);
      if(m_request.volume>max_volume)
        {
         m_request.volume=max_volume;
         partial_close=true;
        }
      else
         partial_close=false;
      //--- order check
      if(!OrderCheck(m_request,m_check_result))
        {
         //--- copy return code
         m_result.retcode=m_check_result.retcode;
         return(false);
        }
      //--- order send
      if(!OrderSend(m_request,m_result))
        {
         if(--retry_count!=0) continue;
         if(retcode==TRADE_RETCODE_DONE_PARTIAL)
            m_result.retcode=retcode;
         return(false);
        }
      retcode=TRADE_RETCODE_DONE_PARTIAL;
      if(partial_close) Sleep(1000);
     }
   while(partial_close);
 
sergeev:
だから専門家は気にしない。なぜスクリプトを?
スクリプトでない場合、すべてのロジックはOnChartEvent()で実行/呼び出しする必要がありますか?