//================================================================================== 4 ==
double AT[33]; // Массив для внешних переменных
bool New_Parametr = false; // Обновления параметров пока не было
for (int i=0; i<=32; i++) // Поищем обновлённый параметр
{ // Если какой-то параметр обновлён..
if(NormalizeDouble(AT[i], 8) != NormalizeDouble(Instrument[0][0][i][0],8))
{
New_Parametr = true; // .. запоминаем этот факт..
for (i=0; i<=32; i++) // .. то присвоим новые значения всем
AT[i] = Instrument[0][0][i][0]; // Для удобства пользования
break; // .. и выходим из цикла перебора
}
}
//================================================================================== 5 ==
int Strategy = NormalizeDouble(AT[0],0);
switch(Strategy)
{
レディース&ジェントルマンズ!
私の質問に答えてください。
コードのどこで、どのように外部変数を 指定すればよいのか?
上の例ではよくわからない。
アプリケーションの設定にある外部変数がAT_1...AT_32と脱人格化しないようにするには、それぞれの数字が何を表しているのか覚えられないので、どうしたらよいでしょうか。
ストラテジーの外部変数の値は、Expert Advisor の設定で指定します(外部変数の値も任意に指定できます)。
外部変数の名前は、Expert Advisor の AG_exp.ex4 のコードに記述されているため、Expert Advisor 内で変更することはできません。
Expert Advisorの外部変数名は、Instrument配列を介して、ストラテジーの添付ファイルに渡されます。
Expert Advisor の外部変数に対応するストラテジーのローカル変数の名前は、ストラテジー内で変更することができます。
この例では、このようなケースを想定しています。
ご希望により、独自の名称を指定することができます。
例えば,AT[i]の代わりにAlfa, Betaなどを指定する。
Array Instrument [][]:http://autograf.dp.ua/Pages/2/26/267/2676.htm
AG_AT()におけるストラテジーhttp://autograf.dp.ua/Pages/2/26/267/26711/26711_1.htm
添付するストラテジー: http://autograf.dp.ua/Pages/2/26/267/26711/26711_2.htm
コーディング戦略の例
http://autograf.dp.ua/Pages/2/26/267/26712/26712_1.htm
иhttp://autograf.dp.ua/Pages/2/26/267/26712/26712_2.htm
今ならわかる。プログラミングの経験がないと、すぐには理解できない。ありがとうございます。
Если программно, то можно воспользоваться функцией ObjectDelete() или ObjectsDeleteAll().
また、戦略のどこに入れればいいのか?それとも、カスタム関数が呼び出されるたびに、オブジェクトが作成され、削除されるのでしょうか?
今ならわかる。プログラミングの経験がないと、すぐには理解できない。ありがとうございます。
また、戦略のどこに入れればいいのか?それとも、ユーザー関数が呼び出されるたびにオブジェクトが作成され、削除されるのでしょうか?
ユーザー機能や戦略の中で規定する必要はないのです。
簡単な別のスクリプトを作成します。ストラテジーをOFFにした後、ウィンドウに放り込むと、不要なものを全て削除してくれます。
(AG5では、ストラテジーに何らかの工夫をする必要がありますが、解決策はMQL5の可能性に依存します)
的確なアドバイスをありがとうございました。私を過大評価しているのはあなただけです。まだスクリプトを扱ったことはないのですが、その方向でやっていこうと思います。できれば、アナログのリンクを教えてください。
今のところ、インジケーターにしか触れていません。
Vladislav Goshkov (VG) の TD_Points&Line_mgtd1.1.mq4 をアナログとして、レポート作成用に log.mq4 Copyright © 2006, komposter を追加して、2000行以上の私のインジケータを取得したものである。
そのスキームを作りました。行数は約500行です。切るかもしれませんが、今のところ大丈夫です。
アイコンで
// --- // ---
は切り出す場所です。
とりあえず構造は決まっているので、希望する機能を実現したい。そして、ルールに従ってすべてを梳いていく(品質に対するコストは幾何級数的に 上昇する)。
まあ、SRCに521行目はないんですけどね。"テキストが許容サイズより大きい "と表示される。ファイルを添付する必要があります
この段階では、特殊な機能やアプリケーションの種類に慣れる必要があります。
MQL4のテキストを 手に取り、1つ1つ最初から読んでいくのがベストです。何か質問があれば、投稿してください。
この段階では、特殊な機能やアプリケーションの種類に慣れる必要があります。
MQL4のテキストを 手に取り、1つ1つ最初から読んでいくのがベストです。何か質問があれば、投稿してください。
あなたのマニュアルは私の参考書です。ダウンロードして印刷し、いつも使っています。
読んでいてわからないことや、カバーされていないことがあると、疑問が湧いてきます。
外部ファイルへのデータ書き込みとニュースファイルからの読み込みの2つのサンプルがあり、これはStart()関数を1回呼び出したものです。Andrey Khatimlianskii (komposter)が私が必要とするものを作るサンプルを見つけるまで、 1ヶ月以上いじくりまわしました。すなわち、init() - レポートのテーブルヘッダ(約30カラム)の形成、 start() - セッションの各ディールのパラメータを含む行の形成 、deinit() -セッションの 結果の形成である。そして、3種類のレポート(各トランザクションのパラメータを含む表、セッションの合計を含む列、セッションの合計を含む表)を作成し、Excelでさらに処理するための設定を変えて使用することができます。ち なみに、deinit()では ObjectsDeleteAll()。でも、それは後の話ですが、最初からグラフ( )を山ほど作って、テスターでも実機でもすべてを見て分析できるようにしていたんです。MQL-4 にはデバッガがないので、プログラミングをするときにとても助かります。こうすることで、プログラムがどんなライン(始値・終値条件、目標、取引ライン)をどのように構築しているかをチャート上で見ることができます。 ただし、すべてインジケーターの範囲内なので、リアルタイムに取引するわけではありません。そのため、Expert Advisorにアタッチして非仮想取引を可能にし、さらに、自動最適化が可能なテスターレポートデータを利用できるようにする必要があるのです。しかも、これまで インジケーターに実装されていた既存の機能を失うことなく、このようなことができるのです。
残念ながら、チュートリアル495ページ、 AutoGraf-4マニュアル180ページ、 MetaEditor、 MTヘルプ 370ページ 、全てを紹介することは不可能で、フォーラムを読むだけでは足りない生活になって います。でも、あくまでも遊び心です。
ストラテジー関数のコード体系(インジケーターアルゴリズムに基づく)を作りましたが、ObjectsDeleteAll()のスクリプトをどこに、どのように置 けばいいのかがわかりません?>> ぜひ、ご覧になってください。
ストラテジー機能コード図(インジケーターアルゴリズムに基づく)
しかし、まさに 私は(インジケータアルゴリズムをベースに)戦略関数コードスキームを作成し、どこで、どのように ObjectsDeleteAll()のスクリプトを挿入 するのかわからない?取引機能を正しく入力したか("zzzzz "でハイライトされている)?ぜひ一度、ご覧ください。
ずいぶん先走ったことを言ってるんじゃない?
プログラミングでは、感覚で操作することはできません。
プログラマーが全く理解していない、あるいは理解していないものを自分のコードに使ってはならない。
そうすると、何もできなくなる。
プログラミングは、おそらく他のどの活動よりも、その本質において、完全な明瞭さと完全な自己申告を必要とします。
まずは初歩的なコードを書くことから始めましょう。より複雑なものに移るのは、コードのすべての文字を完全に説明できるようになってからにしましょう。
--
教科書には、シンプルで簡単なExpert Advisorの例が掲載されています。
先に、プログラミング入門で、アプリケーションプログラムの分類(Expert Advisor、スクリプト、インジケーターの符号と違い)があります。
スクリプトをExpert Advisorに「プラグイン」することはできません。これは、独立した別のプログラムです。
一目見て、あなたのコードの書式が悪いと言えます。
それに、ほとんどのブロックは機能として設計することができます。その方がわかりやすい(そうでないと、数ヶ月後に自分のコードを読めなくなる)。
まったくその通りです。すべての点で同意します。建設的な 批評に時間を割いていただき、ありがとうございます
インクルードとは、AG_AT()またはその関数にスクリプト操作をリンクするコードを記述し、ストラテジーを実装することを意味します。
チュートリアルでは、単純なExpert Advisorの例ではstart()が含まれていますが、通常のものでは、すべての特殊関数が存在します。特に 問題はないのですが、「食欲は 後からついてくる」と言いますからね。
問題は、AutoGraf-4の 素晴らしい機能をどのように使うかです。どうしたらいいのでしょうか?