MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 103 1...96979899100101102103104105106107108109110...1953 新しいコメント DenZell 2017.02.01 06:57 #1021 trader781: eg: 取引が終了するのを待つにはどうすればよいですか?アレクセイ・ヴィクトロフ 1.オーダーが開かれたら、グローバルレベルまたはスタティックという変数にチケットを書き込み、このオーダーの色が青く なるまで、おっと、比較OrderCloseTime() > 0でクローズされるまで監視します。クローズタイムが0より大きい場合、注文はクローズされます。 2.GOTO演算子への置き換えは、より効率的です。機能については、ドキュメントをお読みください。何か例を示す方法はないでしょうか?前の取引が終了するのを待つにはどうしたらよいですか?double Lot = 0.1; double loss = 100; int start() { int order; if(OrdersTotal()==0) { order = OrderSend(Symbol(),OP_BUY,Lot,Ask,1*Point,Ask-loss*Point,Ask+loss*Point); // Вверх order = OrderSend(Symbol(),OP_SELL,Lot,Bid,1*Point,Bid+loss*Point,Bid-loss*Point); // Вниз } return(0); }//+------------------------------------------------------------------+ Alexey Viktorov 2017.02.01 07:52 #1022 DenZell:何か例を示す方法はないでしょうか?前の取引が終了するのを待つにはどうしたらよいですか?double Lot = 0.1; double loss = 100; int start() { int order; if(OrdersTotal()==0) { order = OrderSend(Symbol(),OP_BUY,Lot,Ask,1*Point,Ask-loss*Point,Ask+loss*Point); // Вверх order = OrderSend(Symbol(),OP_SELL,Lot,Bid,1*Point,Bid+loss*Point,Bid-loss*Point); // Вниз } return(0); }//+------------------------------------------------------------------+ いくつかの選択肢があります。 最もシンプルなのは、一連の動作です。まず、すでに開いている注文で何かをしようとし、次に、開いている注文がなければ、それを設定しようとするのです。 ポジション処理と新規注文の開始を2つの独立したユーザー定義関数に分割します。その後、OnTick()関数で 未決済注文の存在を確認し、得られた結果に応じてどちらかの関数を呼び出します。 言葉にするとこんな感じです。void OnTick(){ if(OrdersTotal() > 0) открытие(); else сопровождение();}bool открытие(){ // здесь код открытия}bool сопровождение(){ // здесь код сопровождения} また、OrderCloseTime() > 0 の場合、特定の注文をチェックすることはさらに困難です。 これは、アカウントが提供する場合ですが、より多くの場合、他のExpert Advisorの作業や手動で注文を開くのケースです。 どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - MetaTrader 5のEMAクロスオーバーに基づくカスケード注文取引戦略 MQL5で日次ドローダウンリミッターEAを作成する Pavel Verveyko 2017.02.01 11:32 #1023 は、端末のアカウント履歴の開始日をプログラムで選択することは可能でしょうか? Artyom Trishkin 2017.02.01 11:35 #1024 Money_Maker: 端末のアカウント履歴の開始日をプログラムで選択することは可能ですか? できます。これは、史上初の「6型バランス駆動」での受注となります。この注文の開始時刻が アカウント履歴の始まりとなる。 Pavel Verveyko 2017.02.01 11:36 #1025 Artyom Trishkin: できます。今回の受注は、史上初の「6型バランス駆動」での受注となります。 私は履歴の最初の順序を必要としない...履歴は最大で開く...私は特定の日付からの履歴が必要...私はプログラム的に設定します(どうやら、質問は詳細のために合理化されました)。 Artyom Trishkin 2017.02.01 11:40 #1026 Money_Maker: 私は履歴の最初の順序を必要としない...履歴は、私は特定の日付から履歴を必要とする最大に開かれている...私はプログラム的に設定します(どうやら質問は詳細を犠牲にして合理化されています)。 という答えもあり得ます。 しかし、質問はやはり「流れ作業」なので、その「特定の日」よりもオープン時間が 早い注文は飛ばすべきと言うことになりますね。 Pavel Verveyko 2017.02.01 11:47 #1027 Artyom Trishkin: 答えは、「できる」ということでもあります。 しかし、質問はまだ "合理化 "のままなので、私は、そのオープン時間は、この "特定の日付 "より早いです注文をスキップする必要があると言うだろう...もちろんそれは私に発生しませんでした...しかし、7年間の注文がたくさんある... 私は日付でフィルタリングすることを本当に考えていませんでした...しかし、7年は非常に多くの注文です...。 スクリーンショットでは、質問に赤い下線が引かれていますが、これは質問が流されていないのでしょうか? Artyom Trishkin 2017.02.01 11:51 #1028 Money_Maker: もちろん、日付でフィルタリングすることは思いつかなかったが......7年間で、多くの注文がある......。 スクリーンショットでは、質問に赤い下線が引かれていて、そこにある日付を入れなければならない...ということは、質問が流されていないのでは? ご質問の意味がわかりません :( プログラム的に具体的に何をしたいのか? Pavel Verveyko 2017.02.01 11:53 #1029 Artyom Trishkin: 質問の意味がわからない :( プログラム的に具体的に何をしたいのか? 赤い下線が引かれた部分に日付を入力し、基本的に[OK]をクリックします... レポートの履歴の深さを決定します Artyom Trishkin 2017.02.01 11:56 #1030 Money_Maker: 赤い下線が引かれているところに日付を入力し、基本的に[OK]をクリックします。 純粋なmqlでは、プログラム的にできないのです。WinAPIでこのウィンドウと日付を探す必要がありますね。 1...96979899100101102103104105106107108109110...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
eg: 取引が終了するのを待つにはどうすればよいですか?
1.オーダーが開かれたら、グローバルレベルまたはスタティックという変数にチケットを書き込み、このオーダーの色が青く なるまで、おっと、比較OrderCloseTime() > 0でクローズされるまで監視します。クローズタイムが0より大きい場合、注文はクローズされます。
2.GOTO演算子への置き換えは、より効率的です。機能については、ドキュメントをお読みください。
何か例を示す方法はないでしょうか?前の取引が終了するのを待つにはどうしたらよいですか?
double loss = 100;
int start()
{
int order;
if(OrdersTotal()==0)
{
order = OrderSend(Symbol(),OP_BUY,Lot,Ask,1*Point,Ask-loss*Point,Ask+loss*Point); // Вверх
order = OrderSend(Symbol(),OP_SELL,Lot,Bid,1*Point,Bid+loss*Point,Bid-loss*Point); // Вниз
}
return(0);
}
//+------------------------------------------------------------------+
何か例を示す方法はないでしょうか?前の取引が終了するのを待つにはどうしたらよいですか?
double loss = 100;
int start()
{
int order;
if(OrdersTotal()==0)
{
order = OrderSend(Symbol(),OP_BUY,Lot,Ask,1*Point,Ask-loss*Point,Ask+loss*Point); // Вверх
order = OrderSend(Symbol(),OP_SELL,Lot,Bid,1*Point,Bid+loss*Point,Bid-loss*Point); // Вниз
}
return(0);
}
//+------------------------------------------------------------------+
最もシンプルなのは、一連の動作です。まず、すでに開いている注文で何かをしようとし、次に、開いている注文がなければ、それを設定しようとするのです。
ポジション処理と新規注文の開始を2つの独立したユーザー定義関数に分割します。その後、OnTick()関数で 未決済注文の存在を確認し、得られた結果に応じてどちらかの関数を呼び出します。
言葉にするとこんな感じです。
{
if(OrdersTotal() > 0)
открытие();
else
сопровождение();
}
bool открытие()
{
// здесь код открытия
}
bool сопровождение()
{
// здесь код сопровождения
}
これは、アカウントが提供する場合ですが、より多くの場合、他のExpert Advisorの作業や手動で注文を開くのケースです。
端末のアカウント履歴の開始日をプログラムで選択することは可能ですか?
できます。今回の受注は、史上初の「6型バランス駆動」での受注となります。
私は履歴の最初の順序を必要としない...履歴は、私は特定の日付から履歴を必要とする最大に開かれている...私はプログラム的に設定します(どうやら質問は詳細を犠牲にして合理化されています)。
しかし、質問はやはり「流れ作業」なので、その「特定の日」よりもオープン時間が 早い注文は飛ばすべきと言うことになりますね。
答えは、「できる」ということでもあります。
しかし、質問はまだ "合理化 "のままなので、私は、そのオープン時間は、この "特定の日付 "より早いです注文をスキップする必要があると言うだろう...もちろんそれは私に発生しませんでした...しかし、7年間の注文がたくさんある...
スクリーンショットでは、質問に赤い下線が引かれていますが、これは質問が流されていないのでしょうか?
もちろん、日付でフィルタリングすることは思いつかなかったが......7年間で、多くの注文がある......。
スクリーンショットでは、質問に赤い下線が引かれていて、そこにある日付を入れなければならない...ということは、質問が流されていないのでは?
プログラム的に具体的に何をしたいのか?
質問の意味がわからない :(
プログラム的に具体的に何をしたいのか?
赤い下線が引かれているところに日付を入力し、基本的に[OK]をクリックします。