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

 
Mickey Moose:


そうなんです、だから出したいんです。

このファイルからソースコードを取得するのは、この種の問題を解決するよりもはるかに困難です)

EA(またはソースがないもの)が近くのチャートにメールを送るというクールなものを一般的に作ることができます :-)

just at my leisure didhttp://luxtrade.tk/atcl:start(フォーラムスレッド: https://www.mql5.com/ru/forum/224745)

で、パッケージにはSMTPサーバ(https://core.tcl.tk/tcllib/doc/tcllib-1-18/embedded/www/tcllib/files/modules/smtpd/smtpd.html)が入っています。

つまり、インジケータでEval("package require smtpd")を使用し、配信用のコールバックを指定すれば、MetaTraderを離れずに、同じプロセスで必要なメールを一度に受信することができるのです

ATcl
  • luxtrade.tk
Рад представить вам библиотеку ATcl v1 beta - интерпретатор Tcl для MT4. Расширяте возможности ваших программ MQL, используйте СУБД, дополняйте сетевыми средствами, интегрируйте их с любыми программами используя Tcl.
 
Maxim Kuznetsov:

EA(またはソースコードのないもの)が隣のチャートにメールを送るという、一般的に楽しいことができるかもしれません :-)

ちょうど暇だったので、http://luxtrade.tk/atcl:start(フォーラムスレッド:https://www.mql5.com/ru/forum/224745)を作ってみました。

で、パッケージの中にSMTPサーバーがある(https://core.tcl.tk/tcllib/doc/tcllib-1-18/embedded/www/tcllib/files/modules/smtpd/smtpd.html)

つまり、インジケータでEval("package require smtpd")を使用し、配信用のコールバックを設定すれば、MetaTraderを離れずに、同じプロセスで必要なメールを一度に受信することができるのです

私はそれを解決しようとし、必要に応じて、私は結果を共有します。

 
Artyom Trishkin:

こちらは設定で設定した小節単位の距離で全履歴を点描するだけでいいはずです。

ありがとうございます、しかし、私は矢印があるバーの番号を見つけ、唯一のその後、10(例えば)と比較しようとしている私は、ネストされたループなしで行うことはできません。

呼び出されたインジケータの矢印がどのバー上にあるか、現在の時点で知る必要があります。

表現が下手なんでしょうね)。例を挙げれば、私が何をしたいのかが明確になると思います。

例えば、if(Open[i+1]>Cloce[i+1])という条件で、TextにHigh[i+1]と矢印のあるバー番号を設定したい。
 
Mickey Moose:

私はそれを理解しようとします、そして、私はその結果を共有することができます。

何か質問があれば、直接聞くか、プロフィールに書いてある連絡先に問い合わせてください。よくサイトを見るが、フォーラム全体を見ることはない - 把握するのは難しいし、うっかり質問を見逃すかもしれない
 

MQL5で 、このExpert Advisorで開いた取引でも他の方法で開いた取引でも、すべての取引で一定の利益に達した時点ですべての通貨ペアの取引を終了するように実装する方法を教えてください。

こんな感じでやってみたんですが、いいんでしょうか?

   if(AccountInfoDouble(ACCOUNT_PROFIT)>profit_close_all)
         for(int i=0; i<OrdersTotal(); i++)
            trade.PositionClose(OrderGetTicket(i),40);
 

アルチョム・トリシキン、決定。入れ子ループは確かに不要です。ありがとうございました )

 
Roman Sharanov:

MQL5で 、このExpert Advisorで開いたか、他の方法で開いたかにかかわらず、すべての取引で一定の利益に達したときに、すべての通貨ペアの取引を終了するように実装する方法を教えてください。

こんな感じでやってみたんですが、いいんでしょうか?

いいえ、そんなことはありません。mql5では、OrdersTotal()は保留中の注文の数で、アクティブなものをポジションと呼びます。したがって、ループはポジションの数 であるPositionsTotal()で構築する必要があります。
 
Roman Sharanov:

こんなことしちゃったんだけど、いいのかな?

if(AccountInfoDouble(ACCOUNT_PROFIT)>profit_close_all)
         for(int i=PositionsTotal()-1; i>=0; i--)
            trade.PositionClose(PositionGetTicket(i),40);

こんな感じ。

ループの中で右の注文を閉じているので、もっとからゼロにする必要があるのに、ゼロからのループを使っています。そして2つ目は、すでにPositionsTotal() を使うように言われていますね。

 
了解です!ありがとうございました。
 
Roman Sharanov:
了解です!ありがとうございました。

ただ、ハイライトされた行のOrderGetTicket()をPositionGetTicket()に変更するのを忘れないでください。

トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

MQL4に関する初心者向けの質問、アルゴリズムやコードに関するヘルプやディスカッションなど

コンスタンチン・ニキーチン さん 2018.02.03 08:38

if(AccountInfoDouble(ACCOUNT_PROFIT)>profit_close_all)
         for(int i=PositionsTotal()-1; i>=0; i--)
            trade.PositionClose(OrderGetTicket(i),40);

こんな感じ。

ゼロからのサイクルと、その逆、よりからゼロへのサイクルを使い分けるのは、サイクルの中でちょうど注文を閉じるからです。そして2つ目は、すでにPositionsTotal() を使うように言われていますね。