MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 515

 
Ihor Herasko:

それはとても不思議な質問ですね。それは、「ヤスリでスツールを回すのはどうやるんですか?

賢くなるのか、それとも本格的に答えるのか、私もミイラを再現できる!?

スクリプトでインジケータ変数を変更する方法という質問のどこが変なんだ!?

どうすればいいか説明できないなら、そう言えばいいじゃないですか。

 
Игорь:

賢くなるのか、それとも満を持して、私もムムッと掛け算ができる!と答えるのか?

スクリプトでインジケータ変数を変更できるのか!という疑問は、何がそんなに不思議なのでしょうか?

どうすればいいか説明できないなら、そう言ってくれればそれでいい !

インジケーターに設定がありますね。なぜ、ウォッシュでこれらの設定を変更する必要があるのでしょうか?

イゴールの言いたいことは、もっとはっきりしているのでしょうか?

 
Игорь:

スクリプトでインジケータ変数を変更できるのか、という質問に対して、何がおかしいのでしょうか?

まさに、そこが不思議なところです。具体的に何がおかしいのかを理解するために、全体をアナロジーに置き換えてみました。

台本は1つのプログラムです。インジケーターは別のプログラムです。インジケーターの変数がメモリーセルです。その結果、メモリセルを(物理的に)偽造して、別のメモリセルと交換する必要があります。この質問の形式は、当然ながら不可解である。

結局、何が必要かを詳しく説明するのではなく、議論に持ち込んでしまうのです。

 
Игорь:

アドバイスお願いします

チャート上でインジケーターの 設定(特定の変数)を変更するスクリプトを使うにはどうすればいいのでしょうか!?

もし可能であれば、コードの断片が望ましいです。

そのための標準的なAPIはありませんが、本当にそうしたいのであれば、できます :-)

アルゴリズムはこのようなものです。

- チャートのすべてのインジケータ(サブウィンドウを含む)をスクロールして、変更したインジケータに関する最大限の情報(名前/シリアル番号)を収集することができます。

- チャートテンプレートを保存する

- テンプレートを展開し、目的のインジケータを探します。

- 目的の値を変更する

- ChartApplyTemplate

- (すべてのインジケータとEAが再ロードされることを忘れないでください、おそらくあなたのものもそうなるでしょう、そしてあなたはおそらくWinAPIを通してファイルをコピーしなければならないでしょう)

一般的に、それは本当に混乱です :-)

 
Игорь: アドバイスお願いします
チャート上でインジケーターの設定(特定の変数)を変更するスクリプトを使うにはどうすればいいのでしょうか!?
もし可能であれば、コードの断片が望ましいです!

とてもシンプルで、よくやりますね。便利なのは、スクリプトにキーを割り当てることができることです。例えば、Ctrl-zで行を削除し、Alt-zで行を表示します。添付の関数 GlobalVariableSet()、GlobalVariableGet()を参照してください。私は別の資料からアイデアを得ました (モデレーターのArtyom Trishkinによって修正さ れました)。

ファイル:
xDEL.mq4  1 kb
 
STARIJ:

とても簡単なことで、いつもやっていることです。便利なのは、スクリプトにキーを割り当てることができることです。例えば、Ctrl-zで行を削除し、Alt-zで行を表示します。添付の関数 GlobalVariableSet()、GlobalVariableGet()を参照してください。私は別の資料からアイデアを得ました (モデレーターのArtyom Trishkinによって修正さ れました)。

他のリソースへのリンクを削除している間に、なぜかファイルそのものが消えてしまいました。

もう一度添付していただけますか?

 
Artyom Trishkin: 他のリソースへのリンクを削除している間に、なぜかファイルそのものが消えてしまいました。

他のリソースへのリンクは禁止されているのでしょうか? そのようなリンクはたくさん見かけましたが...。それとも、何か基準があるのでしょうか?

 
Artyom Trishkin:

他のリソースへのリンクを削除している間に、なぜかファイルそのものが消えてしまいました。

再度添付してください。

普通、資料を削除するのは、「自分は劣っている」「自分には勝てないライバルがいる」という恐怖心があるときです。

ただ、このフォーラムは競争の先にあるもので、何かを恐れる必要はない。

 
Ihor Herasko:

そもそも、注文が開始されたかどうかがわからないのです。したがって、まだオープンしていない注文でストップロスやテイクプロフィットに到達しているかどうかを確認することは意味がありません。


試してみましたが、うまくいきません、何か間違っているのでしょうか(

              {
                    //Цена открытия ордера
                    price=High[1]+OrderPoint*Point;
                    //Стоп лосс
                    stoploss=Low[1]-Point;
                    //Тэйк профит
                    takeprofit=price+price-stoploss;
                    //Установка отложенного ордера (с присвоением magic номера 100, чтобы потом можно было их выбрать и удалить)
                    OrderSend(Symbol(),OP_BUYSTOP,1,price,3,stoploss,takeprofit,"PinBar Buy 1H",100,0,clrGreen);
                        //Проверяет открылись ли (0 - не открылись вроде) и сколько штук открыто (в данном случае не открылись), чтобы потом выбрать (уточнить) 
                        for (int i=0; i<OrdersTotal(); i++)
                        {
                        //Выбираем все неоткрытые отложенные ордера?
                        OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
                           //Если для выбранных ордеров с magic номером 100 текущая цена ушла ниже параметра стоплосса для этого отложенного ордера, то удаляем)
                           if ((OrderMagicNumber()==100)&&(Low[0]<stoploss)) 
                           {
                           OrderDelete(100);
                           }
                        }   
                 }
 
Ihor Herasko:

まさに、そこが不思議なところです。具体的に何がおかしいのかを理解するために、全体をアナロジーに置き換えてみました。

スクリプトは1つのプログラムです。指標は別のプログラムです。インジケーターの変数がメモリーセルです。その結果、メモリセルを(物理的に)偽造して、別のメモリセルと交換する必要があります。この質問の形式は、当然ながら不可解である。

結局、何が必要かを詳しく説明するのではなく、議論に持ち込んでしまうのです。

ありがとうございました。