エラー、バグ、質問 - ページ 1634

 
fxsaber:
LifeHack:ビジュアライゼーションウィンドウをいくつでも取得できる。
Metaeditorからヒストリーデバッグを行う - CTRL+F5.表示された可視化ウィンドウは閉じずに、ターミナルウィンドウを閉じてください。そして、最初からやり直すのです。このように、新しい可視化ウィンドウが表示されるので、コードの変更に伴うEA結果の変化を分析する際に有効です。

もっとシンプルでいいんです。ビジュアライゼーションをフォワードで開始するには

次のビジュアライゼーションは、2つ目の前方のビジュアライゼーションで開始されます

 
fxsaber:
Tester->Settingsに "Delete previous logs after Start "というオプションが欲しいです。Tester->Journalの「Delete logs」をいちいちクリックするのは疲れる。もちろん、まれに過去のバックテストのログが役に立つことがあります。ほとんどの場合、それらは必要ではありません。そのため、古いログを自動的に削除するオプションがあれば、利便性とHDD/SDDの容量節約の両面で便利です。
そうなんです。"まれに便利な ことがある"
 
fxsaber:
アカウント/テスターでHedgeモードがオン/オフされているかどうかを確認するにはどうすればよいですか?オフラインのヘルプには記載がありません。

ナビゲーターでアカウントにマウスカーソルを合わせます。アカウントのツールチップで確認することができます。

アカウントに接続すると、ターミナルのログにネッティングまたはヘッジングと表示される

 

以前、アプリケーション#1534780で 、先頭のコンストラクタの呼び出しについて、添付されたコードの結果が、以下のようになることがありました。

2016.08.10 16:39:26.982 Test (GBPUSD,M15) void A::~A():12855
2016.08.10 16:39:26.982 Test (GBPUSD,M15) OnDeinit:3
2016.08.10 16:39:26.975 Test (GBPUSD,M4) void A::A():17233
2016.08.10 16:39:15.587 Test (GBPUSD,M15) void A::A():12855

という質問に対して、次のような答えが返ってきた(※)。

サポートチーム 2016.08.11 13:35

リーディングコールはなく、タイムフレームを変更すると新しいインディケータが作成され(クローン)、その後以前のものが削除されます。


もしそうなら、次の例では、遅延されたコンストラクタの呼び出しを示しています。

アクションのシーケンス。

  1. GBPUSD,M15の新規チャートを開きます。
  2. タイムフレームを H1に変更する
  3. Test.ex5インジケータをチャートに貼り付ける
  4. チャート期間をM15に変更

結果

2016.08.11 15:51:51.188 テスト (GBPUSD,M15) void A::A():17936
2016.08.11 15:51:50.932 テスト (GBPUSD,H1) void A::~A():12285
2016.08.08.11 15:51:50.931 Test (GBPUSD,H1) OnDeinit:3
2016.08.11 15:51:39.421 Test (GBPUSD,H1) void A::A():12285|無料ダウンロード、もしくはおためし下さい。

であるべきである(*参照) - 下線部は最後ではなく、2番目に来るべきである(時間的に)。

//Test.mq5
class A { public:
        A() : a( MathRand()) { Print( __FUNCSIG__, ":", a ); }
        virtual ~A()         { Print( __FUNCSIG__, ":", a ); }
        int a;
};
static A a;
void OnInit() {}
void OnDeinit( const int reason ) { Print( __FUNCTION__, ":", reason ); }
int OnCalculate( const int rates_total, const int, const int, const double& [] ) { return rates_total; }
 

インジケータの計算は 別のシンボルスレッドで行われ、チャート期間の設定とクローンの作成はGUIスレッドで行われる

そのため、前の指標が削除される前に新しい指標が計算されたり、その逆が起きたりする事態が発生します。

キャラクタフロー操作(抽象)

  1. アクションナンバーワン
  2. アクションナンバー2
  3. アクション#3 - インジケーターの計算
  4. アクション#4
  5. アクション#5 - 未使用のインジケーターをチェックし、削除する。
  6. アクションナンバー6
  7. アクション #N
  8. 流れを止めない場合は、ステップ1に進む

シンボルストリームがどの地点にあったかによって、新しいインジケータの初期化と古いインジケータの削除の順序が異なります。

 
Slawa:
そうなんです。"まれに便利な ことがある "ということです。
だから、ユーザーが特に要求してきたときには、ギガバイトを書かないのが論理的です。どうせなら、手動で掃除してほしい。
 
Slawa:

ナビゲーターで法案にマウスを合わせる。アカウントのツールチップが表示されます。

口座に接続後、端末のログにネッティングまたはヘッジ

どうやって?
 
fxsaber:
プログラム的にどうなんだ!?
ENUM_ACCOUNT_MARGIN_MODE margin_mode=(ENUM_ACCOUNT_MARGIN_MODE)AccountInfoInteger(ACCOUNT_MARGIN_MODE);
bool is_hedging=(margin_mode==ACCOUNT_MARGIN_MODE_RETAIL_HEDGING);
 
fxsaber:
アカウント/テスターでHedgeモードのオン/オフを確認するにはどうすればよいですか?オフラインのヘルプには一言も書かれていない。

MQL5リファレンス - 標準定数、列挙、および構造体 -環境状態- アカウント情報 - ENUM_ACCOUNT_MARGIN_MODE

MQL5リファレンスマニュアル - アカウント情報 - AccountInfoInteger - ENUM_ACCOUNT_INFO_INTEGER - ENUM_ACCOUNT_MARGIN_MODE

MQL5IncludeTrade.mqh - CTrade::IsHedging

 
Slawa:

MQL5リファレンス - 標準定数、列挙、および構造体 -環境状態- アカウント情報 - ENUM_ACCOUNT_MARGIN_MODE

MQL5リファレンスマニュアル - AccountInfoInteger - ENUM_ACCOUNT_INFO_INTEGER - ENUM_ACCOUNT_MARGIN_MODE

MQL5IncludeTrade.mqh - CTrade::IsHedging

ありがとうございました。すみません、Hedgeという単語で検索してしまいました。