//--- кешируемая запись содержит номер прохода (при генетике - номер по порядку), структуру результатов тестирования (если математика, то 1 double), буфер оптимизируемых параметров и генетический проход
//+------------------------------------------------------------------+//| Структура для статистики торговли |//+------------------------------------------------------------------+struct ExpTradeSummary;
#define TOSTRING(A) #A + " = " + (string)(A) + "\n"string ToString( void ) const
{
return(
TOSTRING(initial_deposit) + // начальный депозит
TOSTRING(withdrawal) + // снято средств
TOSTRING(profit) + // общая прибыль (+)
TOSTRING(grossprofit) + // общий плюс
TOSTRING(grossloss) + // общий минус
TOSTRING(maxprofit) + // максимально прибыльная сделка
TOSTRING(minprofit) + // максимально убыточная сделка
TOSTRING(conprofitmax) + // прибыль максимальной последовательности прибыльных сделок
TOSTRING(maxconprofit) + // максимальная прибыль среди последовательностей
TOSTRING(conlossmax) + // убыток максимальной последовательности убыточных сделок
TOSTRING(maxconloss) + // максимальный убыток среди последовательностей
TOSTRING(balance_min) + // минимальное значение баланса (для расчёта абсолютной просадки)
TOSTRING(maxdrawdown) + // максимальная просадка по балансу
TOSTRING(drawdownpercent) + // отношение максимальной просадки по балансу к её пику
TOSTRING(reldrawdown) + // максимальная относительная просадка по балансу в деньгах
TOSTRING(reldrawdownpercent) + // максимальная относительная просадка по балансу в процентах
TOSTRING(equity_min) + // минимальное значение equity (для расчёта абсолютной просадки по equity)
TOSTRING(maxdrawdown_e) + // максимальная просадка по equity
TOSTRING(drawdownpercent_e) + // отношение максимальной просадки по equity к её пику (+)
TOSTRING(reldrawdown_e) + // максимальная относительная просадка по equity в деньгах
TOSTRING(reldrawdownpercnt_e) + // максимальная относительная просадка по equity в процентах
TOSTRING(expected_payoff) + // матожидание выигрыша (+)
TOSTRING(profit_factor) + // показатель прибыльности (+)
TOSTRING(recovery_factor) + // фактор восстановления (+)
TOSTRING(sharpe_ratio) + // коэффициент Шарпа (+)
TOSTRING(margin_level) + // минимальный уровень маржи
TOSTRING(custom_fitness) + // пользовательский фитнесс - результат OnTester (+)
TOSTRING(deals) + // общее количество сделок
TOSTRING(trades) + // количество сделок out/inout
TOSTRING(profittrades) + // количество прибыльных
TOSTRING(losstrades) + // количество убыточных
TOSTRING(shorttrades) + // количество шортов
TOSTRING(longtrades) + // количество лонгов
TOSTRING(winshorttrades) + // количество прибыльных шортов
TOSTRING(winlongtrades) + // количество прибыльных лонгов
TOSTRING(conprofitmax_trades) + // максимальная последовательность прибыльных сделок
TOSTRING(maxconprofit_trades) + // последовательность максимальной прибыли
TOSTRING(conlossmax_trades) + // максимальная последовательность убыточных сделок
TOSTRING(maxconloss_trades) + // последовательность максимального убытка
TOSTRING(avgconwinners) + // среднее количество последовательных прибыльных сделок
TOSTRING(avgconloosers) // среднее количество последовательных убыточных сделок
);
おそらく見逃したのでしょう。
彼らはそれを見逃さなかった。
現在のoptファイルのフォーマットでは、それができません。考えないといけない。
彼らはそれを見逃さなかった。
現在のopt-fileのフォーマットでは、できません。考えないといけない。
何も変える必要はないようです。
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
バグ、バグ、質問
スラバ さん 2019.04.19 15:11
//--- кешируемая запись содержит номер прохода (при генетике - номер по порядку), структуру результатов тестирования (если математика, то 1 double), буфер оптимизируемых параметров и генетический проход
各入力は、必須フィールドを持つ構造体によって定義される。
とても簡単に調べることができるようになりました。
しかし、例えば1回のパスの統計データを調べることはできません。明らかです、tst-formatがあります。しかし、Strategy TesterでCTRL+Cを使い、Backtestタブで統計データとのセットファイルを形成することができれば便利である。
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
ライブラリ: TesterCache
fxsaber, 2019.11.11 04:45
他の人はどうか知りませんが、セットファイルにすべての情報が含まれていると便利ですね。それが何なのか、どこから来て、いくらなのかを把握するのはとても早いです。
ExpTradeSummary構造体フィールドの出力です。
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
バグ、バグ、質問
スラバ さん 2019.04.19 15:11
せっかく強力なキャッシュが登場したのだから、多少は改善した方がいい。
これで、OnTesterという1つのユーザーパラメーターだけがキャッシュに入るようになりました。
ExpTradeSummaryが3倍、5倍と大きくなればとても便利だと思います。で埋めることができる。
今、キャッシュを解析してみると、明らかに一人のユーザーの値ではなく、複数のユーザーの値を見る可能性に欠けています。
これはMetaquotesへのリクエストですが、少なくともチームの開発者の誰かが答えてくれることを願っています(すでに質問されていたら申し訳ありませんが、言語の問題でロシア語のフォーラムで答えを見つけることができません)。
ストラテジーテスターの改良点として、デモ口座では決して起こらない取引状況を、リアル口座でのみテストできる機能を追加してほしいという要望は妥当でしょうか?十分にテストできないまま、堅牢なコードを作るのは本当に大変なことだからです。
これは主に、(Forex / CFDとは対照的に)市場が中央集権的であることが理由です。例えば、部分的なオーダーフィリングは、デモ口座では(私の知る限り)起こりませんが、先物や株式の実際の口座ではよくある状況です。そのような状況をシミュレーションできるツールがあれば、非常に便利だと思います。
パーシャルフィルはあくまで一例で、もしMetaquotesがそのような機能に取り組むのが良いと考えるなら、私はアイデアを一元化し、そのような機能の詳細な説明を提供したいと思っています。(自分のニーズは特になし)。
お忙しい中、ご回答ありがとうございました。
信頼性の高いコードを作るには、十分なテストができないことには難しい。
そのために、すべてのEA開発者は何年もかけて実際の口座で 取引ライブラリのデバッグを行っています。
これなくして、信頼性の高いコードを作ることはできない。
そのために、すべてのEA開発者は何年もかけて実際の口座で 取引ライブラリのデバッグを行っています。
これなくして、信頼性の高いコードを作ることはできない。
確かにそうですが、実際のアカウントで時間をかけてテストする手間が省けるのは助かりますね。
確かにそうなのですが、この機能があれば、実際のアカウントで何度も時間をかけてテストする必要がなくなります。
目的は2つあります。
テスターがお手伝いできるのは、2つ目のポイント、シンプルなものだけです。TSの「流動性上限」と言われる部分を測定することで、部分執行を実施することができます。しかし、それは極めて粗い見積もりでしょう。
テスターの機能拡張は、その機能拡張が使用されない場合でも、追加的なブレーキとなることを理解すべきである。
そのために、すべてのEA開発者は何年もかけて実際の口座で 取引ライブラリのデバッグを行っています。
これなくして、信頼性の高いコードを作ることはできない。
無駄で傲慢な書き込みで私をきっぱり忘れることをお勧めします。
残念ながら、私にはそれらをフィルタリングする方法がないのです。
私の投稿には絶対に返信しないでください、通知のせいで私の時間を無駄にしています。
無駄で傲慢な書き込みで私をきっぱり忘れることをお勧めします。
一度、ロシア語の自動翻訳機の妥当性を疑ってみることをお勧めします。
残念ながら、私はそれらをフィルタリングする方法がありません。
私の投稿には絶対に返信しないでください、通知のせいで私の時間が無駄になります。
OKです。