PROFIからSUPER PROFIへの質問-1. - ページ 40

 
olyakish:

どのような数値を設定したのか、例を挙げて教えてください。

20 or 0.00020 ?


もちろん、20本です。常にポイントで設定されています。

   int      slippage,            // проскальзывание

でも、5桁のスプレッドでは物足りない!上記のアドバイスの通り、スプレッドは多めに、もしくは2倍が妥当です。

 
borilunad:

もちろん、20!常にポイントで設定します。

でも、5桁のスプレッドでは物足りない!上記の通り、スプレッドは多めに、もしくは2倍が望ましいです。

ありがとうございます......それは承知しています。自分宛ての質問でない質問に答えている。

 
olyakish:

ありがとうございます、承知しております。自分宛ての質問でない質問に答えている。


ごめん、受験生だったとは!?;)
 

ターミナルでクラッシュを記録するモードはありますか?

サイレントクラッシュというのは、ターミナルがエラーもなくただ閉じてしまうことを指します。

最適化中にターミナルがクラッシュすることがあるので、その原因を探したい。戦略は、DLLを使用します。すべてのコードは try - catch でラップされ、独自のロギングが行われますが、エラーは表示されず、それにもかかわらず、ターミナルは時々大規模な遺伝子でクラッシュしています。システム全体が検出されることはなく、100回の反復でクラッシュすることもあれば、全く同じパラメータセットと範囲で1万回でも生き残ることもあります。

タスクマネージャーは、メモリリークを表示しません(このような目的のために最適なツールではないことは理解していますが、それでも)。

 
TomKein:

ターミナルでクラッシュを記録するモードはありますか?

サイレントクラッシュというのは、ターミナルがエラーもなくただ閉じてしまうことを指します。

最適化中にターミナルがクラッシュすることがあるので、その原因を探したい。戦略は、DLLを使用します。すべてのコードは try - catch でラップされ、独自のロギングが行われますが、エラーは表示されず、それにもかかわらず、ターミナルは時々大規模なジェネリックでクラッシュします。システム全体が検出されることはなく、100回の反復でクラッシュすることもあれば、全く同じパラメータセットと範囲で1万回でも生き残ることもあります。

タスクマネージャーは、メモリリークを表示しません(このような目的のために最適なツールではないことは理解していますが、それでも)。

私見ですが、テスターのDLLは動作しないので、処理が遅くなることはないのでは!?
 

なぜ、全く知らないことを書くのか?

 
TomKein:

ターミナルにクラッシュを記録するモードはありますか?

ターミナルからクラッシュが通知されたら、手動でダンプして、それを使って解決することができます。

クラッシュ通知ウィンドウが表示されないままターミナルが終了してしまった場合は、自分でダンプを作成する必要があります。chromeからbreakpadというプロジェクトを 一つ出していますが、ほぼ全てのプロジェクトに接続でき、確実にダンプを書き込むので、それほど難しくはありません。一時期はその方法で端末用のDLLをデバッグしていました。

 

変数名を文字列で取得する方法はありますか?

int varTakeProfit = 1;
Print( VarName( varTakeProfit ), " = ", varTakeProfit ); // varTakeProfit = 1

string VarName( int Var )
{
   ???
}
 
#define  VarName(x) #x


int varTakeProfit = 1;
Print( VarName( varTakeProfit ), " = ", varTakeProfit ); //  varTakeProfit = 1

 
Andrey Khatimlianskii:

変数名を文字列で取得する方法はありますか?

MQLにそのようなものはありません。そのような仕事が発生した場合、私は次のようにしています。

struct ValueAndName
{
   double   fValue;                     // Значение переменной
   string   sName;                      // Имя переменной

   ValueAndName(double _fValue, string _sName)
   {
      SetData(_fValue, _sName);
   }

   void SetData(double _fValue, string _sName)
   {
      fValue = _fValue;
      sName = _sName;
   }
};

VarAndName g_stVarTakeProfit(12.0, "VarTakeProfit");
VarAndName g_stVarStopLoss(20.0, "VarStopLoss");

void OnStart()
{
  Print("Значение переменной ", g_stVarTakeProfit.sName, " равно: ", g_stVarTakeProfit.fValue);
  Print("Значение переменной ", g_stVarStopLoss.sName, " равно: ", g_stVarStopLoss.fValue);
}