オープンプロジェクト - テスタ・オプティマイザを自社開発 - ページ 2 1234567 新しいコメント Forex Trader 2005.03.01 11:51 #11 ただ、コンパイラの反応が事前にわからないのですが、インジケータ本体の取引定数を通すのか、通さないのか?<br /> 翻訳="no"> おそらくそうでしょう。 もちろん、そうであるべきです。これらはすべて単なる整数であり、別の型ではありません。 ちょっとしたコツ もちろん、テスター用に戦略を書き換えないことが望ましい。 一度書いた戦略は、テスターでもテスターなしでも(実世界でも)機能するはずである。 これは、図書館の力を借りれば可能です。 1.取引に関連するすべての機能は、その名前を少し変更します(私の... - あまり良くない、多分良い_......)。 2.2つのライブラリを作成します。最初のものはテスト用のコード(実際には注文を送信しない)を含み、2番目は標準的な関数の呼び出しのパラメータを重複させるだけです。ワーク/テストの切り替えは、ライブラリを入れ替えるだけで完了します。 もちろん、1つのライブラリにまとめて、グローバルなパラメータを導入して切り替えることも可能ですが、おそらく不要でしょう。 そして、このようなテスターの作成を根本的に簡素化する、もう一つの機能、現在の最後のバーを設定する機能をMTに導入することができれば、素晴らしいことだと思います。 例えば、テスト対象のヒストリーに1000本のバーがあるとします。 200バーを最後のバーとして定義し、Close[0]の代わりにClose[200]を使用することにしましょう。この機能は、すべての内蔵機能で動作する必要があります。 そして、この値が設定されたバー番号(テストの最後のバー)とストラテジー内のstart関数の呼び出しが ループしているように見えるでしょう。 実は、そんなに単純な話ではないのです :)) もうちょっとポイントが欲しい. Forex Trader 2005.03.01 12:07 #12 よくわからないのですが、説明してください 2.2つのライブラリを作成します。最初のライブラリにはテスト用のコード(実際には注文を送信しない)が含まれており、2番目のライブラリには標準的な関数呼び出しのパラメータが単純に複製されています。動作/テストの切り替えは、ライブラリを入れ替えるだけで可能です。 テストのためのコード」という言葉は、テスターコードなのかEAコードなのか?もっと具体的に。 それも 例えば、テスト対象のヒストリーに1000本のバーがあるとします。 200本のバーを最後のバーとして定義し、Close[0]の代わりにClose[200]をあらゆる場所で使用します。 そして、このフィックは、すべてのインライン関数で動作(影響)するはずです。 どんなEAコードでも、簡単にインジケーターのコードに変換できます。 EAのstart()ブロックに、for(testerconter=Bars;testerconter>=0;testerconter--)を追加します。 { かっこでくくる } リファレンスを使用している箇所を全て[testerconter+reference]に置き換えてください。 以下は、組み込みのMACD_sample.mq4 Expert Advisorの例です。 ソースコードです。 MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0); MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1); SignalCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0); SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1); MaCurrent=iMA(NULL,0,MATrendPeriod,MODE_EMA,0,PRICE_CLOSE,0); MaPrevious=iMA(NULL,0,MATrendPeriod,MODE_EMA,0,PRICE_CLOSE,1); モディファイド MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,testerconter+0); MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,testerconter+1); SignalCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,testerconter+0); SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,testerconter+1); MaCurrent=iMA(NULL,0,MATrendPeriod,MODE_EMA,0,PRICE_CLOSE,testerconter+0); MaPrevious=iMA(NULL,0,MATrendPeriod,MODE_EMA,0,PRICE_CLOSE,testerconter+1); ご覧の通り、全く問題ありません。もし必要なら、いつでも testerconter=0 を再定義することができます。 のコードはExpert Advisor本体で実行され、Expert Advisor本体では実行されません。 Forex Trader 2005.03.01 12:30 #13 テストのためのコード」という言葉は、テスターコードなのかEAコードなのか?もっと具体的に。 最初のライブラリでは、関数 _OrderSend(Symbol(), OP_SELL, 1, Bid, 5, Bid + Stop * Point, Bid - Take * Point); はテスターでの注文実行を エミュレートします。つまり、テスターの注文リストに追加し、サーバーには注文を送りません。 2番目のライブラリでは、この関数は単に組み込み関数を呼び出すだけです。 int _OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE) { return (OrderSend(symbol, cmd, volume, price, slippage, stoploss, takeprofit, comment, magic, expiration, arrow_color) ); } Expert Advisorのどのコードも、インジケーターのコードで簡単に作り直すことができます。 EAのstart()ブロックに、for(testerconter=Bars;testerconter>=0;testerconter--)を追加します。 { かっこでくくる } リファレンスを使用している箇所を全て[testerconter+reference]に置き換えてください。 そういうことなんです。 置換の代わりにMTで変数testerconterの値を設定する関数(デフォルトでは0)を呼び出し、この置換([testerconter+reference])をMT自体で行う方が簡単でしょう。 そうすれば、戦略そのものにこのような代入をする必要はない。 for(testerconter=Bars;testerconter>=0;testerconter--) { SetTestPoint(testerconter); далее текст эксперта без переделки, или лучше вызов его функции start (или _start) } preに置き換えてください。で引用するプリ、「つまり、...に1000本のバーがあるとします。 をクリックしないと、またページが消えてしまいます。 Forex Trader 2005.03.01 12:47 #14 quoteに置き換えたら、文字が消えてしまったようなので、例の文字列 の強制翻訳を 作る 凡そ int _OrderSend( string symbol,...) 私の結論:同じことを話しているようだ。今のラストバーのリクエストはとりあえず忘れてもいいんだー。 そうするように努めなければなりません。 とりあえず標準的な取引関数、接頭辞_を再定義するだけです。ということで、さらに立派になりました :) Forex Trader 2005.03.01 12:53 #15 to avm このような形でのテストが可能です。そして、それで十分なのです。でも、残念ながらユニバーサリズムは得られません。<br / translate="no">そんなテストに2週間ほど費やしました。一見、シンプルに見える。 血眼になって」テストした、つまり取引機能の 再定義をしなかったのではないでしょうか。そして、新しいテストのたびに 新しいテストのたびに、新しいテスター・インジケータを書く必要があります。でも、1回だけでいいんです。問題ありません。 間違っていたら-機能を投稿してください-ケチらないでください。 Forex Trader 2005.03.01 13:07 #16 もう一点。 Expert Advisorからstart関数を 直接呼び出す ことはできないようです。 したがって、Expert Advisorのコードをライブラリに記述し、そこに_init、_deinit、_startの各関数を用意するのがよいでしょう。 Expert Advisorでは、次のように記述します。 #include "....."; ............... int init() { return(_init()); } int deinit() { return(_deinit()); } int start() { return(_start()); } パラメータがどうなっているのか、ちょっと不明ですが。 Forex Trader 2005.03.01 13:18 #17 ちなみに、1つのチャートに複数のEA/シグナルを組み合わせることができます。 オメガでやっているように。 #include "A1....."; #include "A2....."; ............... int init() { _initA1(); _initA2(); return(0); } int deinit() { _deinitA1(); _deinitA2(); return(0); } int start() { _startA1(); _startA2(); return(0); } あまりいいものではありませんが、これなら大丈夫です。 一般的には、自作のイベント処理 システムが動作します :)) Forex Trader 2005.03.01 13:22 #18 もしかして、その方が楽?パーサースクリプトを作成し、それをmq4ファイル(Expert Advisorのコード付き)に適用します。 このコードを処理し、あらゆる種類のインクルードを挿入し、バランス、エクイティなどのためのアレイを動作させます。 変数 Lots を _Lots (その他) にリネームします。一般的には、大まかな仕事をこなす。 出力したものをファイリングして行くだけです。:) シンプルなコンベア方式。 Forex Trader 2005.03.01 17:24 #19 to avm<br /> translate="no">。このような形でのテストが可能です。そして、それで十分なのです。でも、残念ながらユニバーサリズムは得られません。そんなテストに2週間ほど費やしたことがあります。一見、シンプルに見えますね。 血眼になって」テストした、つまり取引機能の再定義をしなかったのではないでしょうか。そして、新しいテストをするたびに、新しいテスターのインジケータを書く必要がありました。しかし、一度だけ行えば、もう問題はないのです。間違っていたら、機能を投稿してほしい。ケチらずに。 全くその通りです。"大いなる血"交代要員はいなかった。MT3.xの頃、このようなテスターを作ったことがあります。MQL4とMQL2は、空と地ほどの違いがあります。しかし、MQL4は活用できていません。精神的にまいっている。まず考えて、それから仕事をするべきだった。 その女性は、「先に考えて、後で話しなさい」とアドバイスされた。女性はこう答えた。"まだ言っていないことをどう考えればいいのか "ということです。 Forex Trader 2005.03.01 17:30 #20 パーサーのことは少し先走りましたね、関数は先に書く必要があります。でも、開発者が多通貨テスター(ポートフォリオテスター)は出ないと言っていたのを覚えています。それとも、私が何か勘違いしているのでしょうか? もし私が混乱していないなら - 自分で書けばいいだけのことです。 1234567 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
もちろん、そうであるべきです。これらはすべて単なる整数であり、別の型ではありません。
ちょっとしたコツ
もちろん、テスター用に戦略を書き換えないことが望ましい。 一度書いた戦略は、テスターでもテスターなしでも(実世界でも)機能するはずである。
これは、図書館の力を借りれば可能です。
1.取引に関連するすべての機能は、その名前を少し変更します(私の... - あまり良くない、多分良い_......)。
2.2つのライブラリを作成します。最初のものはテスト用のコード(実際には注文を送信しない)を含み、2番目は標準的な関数の呼び出しのパラメータを重複させるだけです。ワーク/テストの切り替えは、ライブラリを入れ替えるだけで完了します。
もちろん、1つのライブラリにまとめて、グローバルなパラメータを導入して切り替えることも可能ですが、おそらく不要でしょう。
そして、このようなテスターの作成を根本的に簡素化する、もう一つの機能、現在の最後のバーを設定する機能をMTに導入することができれば、素晴らしいことだと思います。
例えば、テスト対象のヒストリーに1000本のバーがあるとします。
200バーを最後のバーとして定義し、Close[0]の代わりにClose[200]を使用することにしましょう。この機能は、すべての内蔵機能で動作する必要があります。
そして、この値が設定されたバー番号(テストの最後のバー)とストラテジー内のstart関数の呼び出しが ループしているように見えるでしょう。
実は、そんなに単純な話ではないのです :))
もうちょっとポイントが欲しい.
テストのためのコード」という言葉は、テスターコードなのかEAコードなのか?もっと具体的に。
それも
200本のバーを最後のバーとして定義し、Close[0]の代わりにClose[200]をあらゆる場所で使用します。
そして、このフィックは、すべてのインライン関数で動作(影響)するはずです。
どんなEAコードでも、簡単にインジケーターのコードに変換できます。
EAのstart()ブロックに、for(testerconter=Bars;testerconter>=0;testerconter--)を追加します。
{
かっこでくくる
}
リファレンスを使用している箇所を全て[testerconter+reference]に置き換えてください。
以下は、組み込みのMACD_sample.mq4 Expert Advisorの例です。
ソースコードです。
モディファイド
ご覧の通り、全く問題ありません。もし必要なら、いつでも testerconter=0 を再定義することができます。
のコードはExpert Advisor本体で実行され、Expert Advisor本体では実行されません。
最初のライブラリでは、関数
はテスターでの注文実行を エミュレートします。つまり、テスターの注文リストに追加し、サーバーには注文を送りません。
2番目のライブラリでは、この関数は単に組み込み関数を呼び出すだけです。
EAのstart()ブロックに、for(testerconter=Bars;testerconter>=0;testerconter--)を追加します。
{
かっこでくくる
}
リファレンスを使用している箇所を全て[testerconter+reference]に置き換えてください。
そういうことなんです。
置換の代わりにMTで変数testerconterの値を設定する関数(デフォルトでは0)を呼び出し、この置換([testerconter+reference])をMT自体で行う方が簡単でしょう。
そうすれば、戦略そのものにこのような代入をする必要はない。
preに置き換えてください。で引用するプリ、「つまり、...に1000本のバーがあるとします。
をクリックしないと、またページが消えてしまいます。
凡そ
私の結論:同じことを話しているようだ。今のラストバーのリクエストはとりあえず忘れてもいいんだー。
そうするように努めなければなりません。
とりあえず標準的な取引関数、接頭辞_を再定義するだけです。ということで、さらに立派になりました :)
血眼になって」テストした、つまり取引機能の 再定義をしなかったのではないでしょうか。そして、新しいテストのたびに
新しいテストのたびに、新しいテスター・インジケータを書く必要があります。でも、1回だけでいいんです。問題ありません。
間違っていたら-機能を投稿してください-ケチらないでください。
Expert Advisorからstart関数を 直接呼び出す ことはできないようです。
したがって、Expert Advisorのコードをライブラリに記述し、そこに_init、_deinit、_startの各関数を用意するのがよいでしょう。
Expert Advisorでは、次のように記述します。
パラメータがどうなっているのか、ちょっと不明ですが。
オメガでやっているように。
あまりいいものではありませんが、これなら大丈夫です。
一般的には、自作のイベント処理 システムが動作します :))
このコードを処理し、あらゆる種類のインクルードを挿入し、バランス、エクイティなどのためのアレイを動作させます。
変数 Lots を _Lots (その他) にリネームします。一般的には、大まかな仕事をこなす。
出力したものをファイリングして行くだけです。:)
シンプルなコンベア方式。
血眼になって」テストした、つまり取引機能の再定義をしなかったのではないでしょうか。そして、新しいテストをするたびに、新しいテスターのインジケータを書く必要がありました。しかし、一度だけ行えば、もう問題はないのです。間違っていたら、機能を投稿してほしい。ケチらずに。
全くその通りです。"大いなる血"交代要員はいなかった。MT3.xの頃、このようなテスターを作ったことがあります。MQL4とMQL2は、空と地ほどの違いがあります。しかし、MQL4は活用できていません。精神的にまいっている。まず考えて、それから仕事をするべきだった。
その女性は、「先に考えて、後で話しなさい」とアドバイスされた。女性はこう答えた。"まだ言っていないことをどう考えればいいのか "ということです。