MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 984 1...977978979980981982983984985986987988989990991...1953 新しいコメント Igor Makanu 2019.10.17 08:57 #9831 Ivan Butko: どのような条件を追加すればよいか、どのように実装すればよいか(簡単であれば)、ご存知の方がいらっしゃいましたら教えてください。 できるのですが、仕組みを確認するのは面白くないので、概要を説明します。 void OnTick() { static int ticket = -1; while(!IsStopped() &&ticket<0) { if(TerminalInfoInteger(TERMINAL_CONNECTED) && TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) && !IsTradeContextBusy()) { RefreshRates(); ticket = OrderSend("EURUSD", OP_SELL, 0.01, Bid, 3, 0, 0, "", 0, 0, clrRed); if(ticket > 0) break; } Sleep(123); } } Ivan Butko 2019.10.17 09:04 #9832 Igor Makanu: できるけど、どう動くか確認するのは面白くないので、スケッチしてみただけです。 イゴール ありがとうございます。そして、確認する必要はありません、もちろん自分でやります。 ダニを待たずにできる方法はないでしょうか? そこで、「プッシュ」を押すと、すぐに開口要求が出るようにしました。 ターミナル(チャートの左上)にあるクイックオープニングディールの標準的な「売買」ボタンのようなものです。それを押すと、瞬時にセルが開く。必要なのは、ティックを待つことなく、単一の取引ではなくバスケットの注文を開くことです。 2つの実装がある(と私は考えている)。 1) チャート上にバスケットを開くボタン(のようなもの)のどちらかを設置する。 2)またはExpert Advisorを使用します。アドバイザーの方が、(問題があれば)開封依頼を繰り返せるので、便利そうです。 アップデイト あなたのコードは、新しいティックで開き、クールな、ありがとう)動作します。 アップデイト また、コピー機には "ms "というパラメータがあり、チェック時間を設定することができることを思い出しました。また、マスターがオープンディールを持っている場合、1msのスレーブからディールオープンのリクエストを送信することができます。すなわち、即時開封が可能であること Ivan Butko 2019.10.17 09:20 #9833 Igor Makanu:できるのですが、どう動くか確認するのは面白くないので、スケッチで紹介します。イゴール、目で見て確認してください。このオープニングは、新しいティックを待たずに、瞬時に行われるのでしょうか?int OnInit(){//---静的 int ticket = -1;while(!IsStopped() &&ticket<0){ if(TerminalInfoInteger(TERMINAL_CONNECTED) && TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) && !IsTradeContextBusy()){RefreshRates()。ticket = OrderSend("EURUSD", OP_SELL, 0.01, Bid, 3, 0, 0, "", 0, clrRed);if(ticket > 0) break;}スリープ(1)。}//---return(INIT_SUCCEEDED);}------------------ そして、意図したとおりに動作しているようです・・・。 Any questions from newcomers Error #130? Open Buy Code issue. Igor Makanu 2019.10.17 09:55 #9834 Ivan Butko: それ以外は、意図したとおりに動作しているようですが...。 がベストな選択ではないのですが・・・。ならせめて #property strict int ticket = -1; int OnInit() { if(ticket < 0) SendMyOrder(); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ void OnTick() { if(ticket < 0) SendMyOrder(); } //+------------------------------------------------------------------+ void SendMyOrder() { while(!IsStopped() && ticket < 0) { if(TerminalInfoInteger(TERMINAL_CONNECTED) && TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) && !IsTradeContextBusy()) { RefreshRates(); ticket = OrderSend("EURUSD", OP_SELL, 0.01, Bid, 3, 0, 0, "", 0, 0, clrRed); if(ticket > 0) break; } Sleep(123); } } //+------------------------------------------------------------------+ しかし、最初のオプションは、チャート上に投げ、「スタンバイ」する必要があると思われるときに自動売買ボタンを押せば、明確に機能するはずです。 トレードをしたいのであれば、そのように書くべきでしょう。 void OnTick() { if(ticket < 0) SendMyOrder(); if(ticket > 0) ExpertRemove(); } Ivan Butko 2019.10.17 10:29 #9835 Igor Makanu: がベストな選択ではないのですが・・・。ならせめて しかし、最初のオプションは、チャート上に投げ、「スタンバイ」する必要があると思われるときに自動売買ボタンを押せば、明確に機能するはずです。 トレードをしたいのであれば、そのように書くべきでしょう。 お疲れ様 Ivan Butko 2019.10.17 10:57 #9836 素晴らしいヴァリアントのテストは続いています。ウラジミールとイゴールの変種は、かなり速いことがわかった。実際にやってみると、Expert Advisorを使ったときよりも、クイックバイボタンをクリックしたときのほうが、トレードが早く成立することがわかった。もう一つ不思議なのは、Expert Advisorでどのペアを1つずつ開くかを指定すると、1つずつ非常にゆっくりと開くことです...そして、各チャートに7つのExpert Advisorを設定すると(より負荷なく)、逆に、すべての取引が順番ではなく、注文間の遅延なく瞬時に開きます(それでも、最初は半秒か1秒のギャップがあります)。チャート上のボタンを 試したい、マニュアルを見つけたが、座標とかの説明しかない。ディールを開くには、"button "スクリプトのどこにコードを書けばいいのでしょうか?チャート上でそれをクリックすると、取引が開始されました。MT標準のクイック売買ボタンのように。 あるいは、注文のバスケットを開くためにトレードパネルをアップグレードする方法は? pvba 2019.10.17 11:22 #9837 よろしくお願いします Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам 2019.10.14www.mql5.com В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н... Igor Makanu 2019.10.17 12:13 #9838 Ivan Butko: チャート上のボタンを 試したい、マニュアルを見つけた。 マニュアルは探さず、ボタンを描きました ))) #property copyright "IgorM" #property link "https://www.mql5.com/ru/users/igorm" #property version "1.00" #property strict input string sym1 = "EURUSD"; input string sym2 = "GBPUSD"; input string sym3 = "USDCAD"; input string sym4 = "USDJPY"; input string sym5 = "AUDUSD"; #include <Controls\Button.mqh> CButton ButtonSend; string sym[5]; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { sym[0] = sym1; sym[1] = sym2; sym[2] = sym3; sym[3] = sym4; sym[4] = sym5; ButtonSend.Create(0, "ButtonSend" + _Symbol, 0, 10, 50, 100, 90); ButtonSend.Color(clrRed); ButtonSend.Text("Kill Forex!"); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { static int ticket[5] = {-1, -1, -1, -1, -1 }; if(ticket[0] > 0 && ticket[1] > 0 && ticket[2] > 0 && ticket[3] > 0 && ticket[4] > 0) return; if(ButtonSend.Pressed()) { ButtonSend.Pressed(false); Print("Start OrderSend()"); while(!IsStopped()) { if(TerminalInfoInteger(TERMINAL_CONNECTED) && TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) && !IsTradeContextBusy()) { RefreshRates(); for(int i = 0; i < 5; i++) { if(sym[i] == "") ticket[i] = INT_MAX; if(ticket[i] > 0) continue; ticket[i] = OrderSend(sym[i], OP_SELL, 0.01, SymbolInfoDouble(sym[i],SYMBOL_BID), 3, 0, 0, "", 0, 0, clrRed); } } if(ticket[0] > 0 && ticket[1] > 0 && ticket[2] > 0 && ticket[3] > 0 && ticket[4] > 0) break; Sleep(123); } } } //+------------------------------------------------------------------+ シンボルの設定は""になる場合は、このシンボルで0.01ロットを開かないでください、ロットの設定は、誰が行うになります見ていない、学ぶ方法についてのトピックとして、行っていない、必要に応じて自分自身を添付してみてください;) Ivan Butko 2019.10.17 12:35 #9839 Igor Makanu: マニュアルは探さず、ボタンを描きました )))) シンボルが""に設定されている場合は、このシンボルの0.01ロットを開いていない、ロットの設定は、誰が行うになります見ていない、学ぶ方法についてのトピックとして、行っていない、必要に応じて自分自身を添付してみてください;)。 イゴールさん、どうもありがとうございました!迅速かつ的確な回答でした。 やってみる Ivan Butko 2019.10.17 16:45 #9840 Igor Makanu: 不思議なことに、あるEAでは、指定した通貨ペアごとに次々とトレードを開いていくのですが...。を時間差で表示します。そして、異なる通貨ペア(シンボル(0))の5つのチャートに置くと、オートトレードを押したときに5つのトレードが同時に瞬時に開く。 何が原因なのか、どうすれば直るのか、提案してもらえますか?1つのEAと1つのチャートにすべてを集約する(オリジナル版のように複数のEAで「オートトレード」を起動したときと同じように、チャート上のボタンで すべてのペアを素早く開くことができるようにする)。 1...977978979980981982983984985986987988989990991...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
どのような条件を追加すればよいか、どのように実装すればよいか(簡単であれば)、ご存知の方がいらっしゃいましたら教えてください。
できるのですが、仕組みを確認するのは面白くないので、概要を説明します。
できるけど、どう動くか確認するのは面白くないので、スケッチしてみただけです。
イゴール ありがとうございます。そして、確認する必要はありません、もちろん自分でやります。
ダニを待たずにできる方法はないでしょうか?
そこで、「プッシュ」を押すと、すぐに開口要求が出るようにしました。
ターミナル(チャートの左上)にあるクイックオープニングディールの標準的な「売買」ボタンのようなものです。それを押すと、瞬時にセルが開く。必要なのは、ティックを待つことなく、単一の取引ではなくバスケットの注文を開くことです。
2つの実装がある(と私は考えている)。
1) チャート上にバスケットを開くボタン(のようなもの)のどちらかを設置する。
2)またはExpert Advisorを使用します。アドバイザーの方が、(問題があれば)開封依頼を繰り返せるので、便利そうです。
アップデイト
あなたのコードは、新しいティックで開き、クールな、ありがとう)動作します。
アップデイト
また、コピー機には "ms "というパラメータがあり、チェック時間を設定することができることを思い出しました。また、マスターがオープンディールを持っている場合、1msのスレーブからディールオープンのリクエストを送信することができます。すなわち、即時開封が可能であること
できるのですが、どう動くか確認するのは面白くないので、スケッチで紹介します。
イゴール、目で見て確認してください。このオープニングは、新しいティックを待たずに、瞬時に行われるのでしょうか?
int OnInit()
{
//---
静的 int ticket = -1;
while(!IsStopped() &&ticket<0)
{ if(TerminalInfoInteger(TERMINAL_CONNECTED) && TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) && !IsTradeContextBusy())
{
RefreshRates()。
ticket = OrderSend("EURUSD", OP_SELL, 0.01, Bid, 3, 0, 0, "", 0, clrRed);
if(ticket > 0) break;
}
スリープ(1)。
}
//---
return(INIT_SUCCEEDED);
}
------------------そして、意図したとおりに動作しているようです・・・。
それ以外は、意図したとおりに動作しているようですが...。
がベストな選択ではないのですが・・・。ならせめて
しかし、最初のオプションは、チャート上に投げ、「スタンバイ」する必要があると思われるときに自動売買ボタンを押せば、明確に機能するはずです。
トレードをしたいのであれば、そのように書くべきでしょう。
がベストな選択ではないのですが・・・。ならせめて
しかし、最初のオプションは、チャート上に投げ、「スタンバイ」する必要があると思われるときに自動売買ボタンを押せば、明確に機能するはずです。
トレードをしたいのであれば、そのように書くべきでしょう。
素晴らしいヴァリアントのテストは続いています。ウラジミールとイゴールの変種は、かなり速いことがわかった。実際にやってみると、Expert Advisorを使ったときよりも、クイックバイボタンをクリックしたときのほうが、トレードが早く成立することがわかった。もう一つ不思議なのは、Expert Advisorでどのペアを1つずつ開くかを指定すると、1つずつ非常にゆっくりと開くことです...そして、各チャートに7つのExpert Advisorを設定すると(より負荷なく)、逆に、すべての取引が順番ではなく、注文間の遅延なく瞬時に開きます(それでも、最初は半秒か1秒のギャップがあります)。
チャート上のボタンを 試したい、マニュアルを見つけたが、座標とかの説明しかない。ディールを開くには、"button "スクリプトのどこにコードを書けばいいのでしょうか?チャート上でそれをクリックすると、取引が開始されました。MT標準のクイック売買ボタンのように。
あるいは、注文のバスケットを開くためにトレードパネルをアップグレードする方法は?
チャート上のボタンを 試したい、マニュアルを見つけた。
マニュアルは探さず、ボタンを描きました )))
シンボルの設定は""になる場合は、このシンボルで0.01ロットを開かないでください、ロットの設定は、誰が行うになります見ていない、学ぶ方法についてのトピックとして、行っていない、必要に応じて自分自身を添付してみてください;)
マニュアルは探さず、ボタンを描きました ))))
シンボルが""に設定されている場合は、このシンボルの0.01ロットを開いていない、ロットの設定は、誰が行うになります見ていない、学ぶ方法についてのトピックとして、行っていない、必要に応じて自分自身を添付してみてください;)。
やってみる
不思議なことに、あるEAでは、指定した通貨ペアごとに次々とトレードを開いていくのですが...。を時間差で表示します。そして、異なる通貨ペア(シンボル(0))の5つのチャートに置くと、オートトレードを押したときに5つのトレードが同時に瞬時に開く。
何が原因なのか、どうすれば直るのか、提案してもらえますか?1つのEAと1つのチャートにすべてを集約する(オリジナル版のように複数のEAで「オートトレード」を起動したときと同じように、チャート上のボタンで すべてのペアを素早く開くことができるようにする)。