ライブラリ: MT4Orders - ページ 4

 
OrdersHistoryTotal自体は、カウンタをキャッシュすることで簡単に高速化できます。
 

接続しようとしているのですが、うまくいきません!

注文を処理するための別のクラスを持っているので、EAコードの最初に変更を加えました。

#property strict
#include <cPoza13-1.mqh>
#include <MT4Orders.mqh>
#include <MQL4_to_MQL5.mqh>

 
-Aleks-:

接続しようとしているのですが、うまくいきません!

注文を処理するための別のクラスを持っているので、EAコードの最初に変更を加えました。

#property strict
#include <cPoza13-1.mqh>
#include <MT4Orders.mqh>
#include <MQL4_to_MQL5.mqh>

MT4Ordersは下のコード(#includeの後)にしか影響しません。そのため、ライブラリの前ではなく、ライブラリの後にクラスを配置してください。
 
fxsaber:
MT4Ordersは、以下のコード(#includeの後)にのみ影響します。したがって、あなたのクラスはライブラリの前ではなく、後に配置してください。

1. まず、テレパシー協会の助けを借りずに、どのようなエラーがあるかを確認する必要があります。

2.cPoza13-1が MT4OrdersとMQL4_to_MQL5を使っているなら、なぜcPoza13-1の ファイル自体に含まれていないのか?そして外のどこか...コーディングへの奇妙なアプローチ

 
mt5でボットを書き換えていて、簡単なテストが必要だったので、試してみることにしました。)ヘッジ口座用ということですが、それは理解できます。非取引口座ではどうなのでしょうか?私のストラテジーはオープンポジションを 1つしか使用しないことを考慮すると、他のすべては正しく機能するのでしょうか?
 
o_O:

そして、もしcPoza13-1が MT4OrdersとMQL4_to_MQL5を使うなら、なぜcPoza13-1の ファイル自体に含まれていないのか?そして、どこかにある...コーディングへの奇妙なアプローチ

アプローチは明確だ。cPozaは純粋なMQL4ライブラリだ。だから修正されない。

例えば、私は別のMT4 Expert Advisor(代替 変換)をこの方法でクロスプラットフォームのコードに変換した。

#include <MT4Orders.mqh>    //https://www.mql5.com/ja/code/16006
#include <MQL4_to_MQL5.mqh> //https://www.mql5.com/ja/code/16006

#ifdef __MQL5__
  #define MODE_MINLOT SYMBOL_VOLUME_MIN
  
  double MarketInfo( const string Symb, const ENUM_SYMBOL_INFO_DOUBLE Type )
  {
    return(SymbolInfoDouble(Symb, Type));
  }
  
  void OnTick()
  {
    start();
  }  
#endif

#include "OpenTiks.mq4" //https://www.mql5.com/ja/code/8578
つまり、私の変換のアプローチは、元のファイルに干渉しないことです。
 
Maxim Dmitrievsky:
mt5でボットを書き換えていて、簡単なテストが必要だったので、試してみることにしました。)ヘッジ口座用ということですが、それは理解できます。非取引口座ではどうなのでしょうか?私のストラテジーはオープンポジションを 1つだけ使用することを考えると、他のすべては正しく機能するのでしょうか?
機能します!私はMT4Ordersを介して証券取引所ですべてを行います。オープンポジションの数に制限はありません。
 
Stanislav Korotky:
OrdersHistoryTotal自体は、カウンターをキャッシュすることで簡単に高速化できる。

もちろん可能だ。必要性を感じたことはない。

-Aleks-:

私のMMでは、ポジションの クローズとオープンが 行われる状況を取引し、状況開始時の財務結果を使用してリスクを考慮します。

この状況では、トレンドの特定を想像することができます - その完了に関する作業は、異なる方法で実行されます - ポジションを開いたり閉じたりしますが、トレンドが実行されればされるほど、その完了の可能性が高くなるため、あなたがリスクを負うことができるものを知ることが重要です - したがって、オープン注文と終了ポイントの異なるボリューム。

どうやら、それは行う必要があります。
 
MT4-advisor(代替 変換)をクロスプラットフォーム版に変換した別の例
#include <MT4Orders.mqh>    //https://www.mql5.com/ja/code/16006
#include <MQL4_to_MQL5.mqh> //https://www.mql5.com/ja/code/16006

#ifdef __MQL5__
  double AccountBalance( void )  
  {
    return(AccountInfoDouble(ACCOUNT_BALANCE));
  }
  
  int TimeHour( const datetime Date )
  {
    MqlDateTime Tmp;
  
    TimeToStruct(Date, Tmp);
  
    return(Tmp.hour);
  }  
  
  void OnTick()
  {
    start();
  }  
#endif

#include "20_200_expert_v4_2_AntS.mq4" //https://www.mql5.com/ja/code/7891
オリジナルのソースを添付します。
ファイル:
 
fxsaber:
MT4Orders は、以下のコード(#include の後)にのみ影響します。そのため、クラスはライブラリの前ではなく、ライブラリの後に配置してください。

エラーはほとんどなくなりましたが、1つだけ残っています:

OrderCloseBy' -関数が 定義されていません cPoza13-1.mqh 1885 8

 //+------------------------------------------------------------------------------------------------------------------------------------+
//| Возвращает TRUE, если один ордер закрылся другим
//+------------------------------------------------------------------------------------------------------------------------------------+
bool cPoza::closeBy(int ticketB, int ticketA)
{
  if(ticketB > 0 && ticketA > 0)
  {
    if(OrderCloseBy(ticketB, ticketA)) return true;
    else Print("Magic=", mMagic, " ",__FUNCTION__, " Встречное закрытие не вышло ticketB=", ticketB, " ticketA=", ticketA, " вызвало ошибку-", _LastError);
  }
  else return false;
 
  return false;
}