何がいけないんですか? - ページ 5 1234567 新しいコメント Владимир Тезис 2011.11.29 19:19 #41 sss2019: わーありがとうございます!この方法の方が汎用性が高い気がします。ところで、OrderSendはオーダーチケットのみを送信するとのことですが、EAではどのようにオーダーがオープンされたことを宣言するのでしょうか?もしかしたら、OrderSelectを使って実装できるかもしれませんね。 初期化ブロックの前に、オーダーチケットを格納する変数を宣言しておきましょう。例えば、こんな感じです。 int チケット start()関数の中で、OrderSend()を呼び出す 前に、こう記述しています。 チケット=-1。 OrderSend()関数は注文のチケットを返すので、Ticket変数が0より大きければ、注文が成立していることを確認します。そうでなければ、注文はありません。OrderSendのリファレンスを参照してください。そこには、注文を設定できない場合、この関数はティックではなく値=(-1)を返すと書かれています。次のティックでは、最初にvalue = -1で初期化され、オーダーが設定されていないため、コードは終了するまで変数は負のままです。そして、これは新しい注文が入るまで続きます。 asasusa 2011.11.30 05:50 #42 苦労しているので、例を示していただけませんか。 Владимир Тезис 2011.11.30 08:59 #43 sss2019: 苦労しているので、例を示していただけませんか。 #property copyright "" #property link "" int Ticket; //+------------------------------------------------------------------+ //| Блок инициализации | //+------------------------------------------------------------------+ int init(){ return(0); } //+------------------------------------------------------------------+ //| Блок деинициализации | //+------------------------------------------------------------------+ int deinit(){ return(0); } //+------------------------------------------------------------------+ //| Старт работы советника | //+------------------------------------------------------------------+ int start(){ Ticket=(-1); if(если есть торговый сигнал){ Ticket=OrderSend(); } if(Ticket>0){// тикет более нуля - ордер встал // выполняем какие-то действия } return(0); } //+------------------------------------------------------------------+ //| Пользовательские подпрограммы | //+------------------------------------------------------------------+ asasusa 2011.11.30 10:17 #44 なぜTicket=(-1);が括弧内にあるのですか? 注文が開いてるのにチケットが-1ってどういう了見だ。 //+------------------------------------------------------------------+ //| Test.mq4 | //| Copyright © 2011, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2011, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" extern int MaFastPeriod = 30; extern int MaSlowPeriod = 90; extern int StopLoss = 25; extern int TakeProfit = 50; int Ticket; int init() { } int deinit() { } int start() { Ticket=(-1); double MyPoint = Point; if(Digits == 3 || Digits == 5) { MyPoint = Point * 10; } double MaFast0 = iMA(Symbol(),0,MaFastPeriod,0,MODE_EMA,PRICE_CLOSE,0); double MaSlow0 = iMA(Symbol(),0,MaSlowPeriod,0,MODE_EMA,PRICE_CLOSE,0); if(OrdersTotal() == 0 && MaFast0 > MaSlow0 && Ticket==(-1)) { Ticket=OrderSend(Symbol(),0,0.1,Ask,30,Ask-StopLoss*MyPoint,Ask+TakeProfit*MyPoint,"CommentA",0,0,Green); return(Ticket); } Alert("Ticket = ",Ticket); return(0); } NADYA 2011.11.30 12:04 #45 なぜ書くのですか? だから、プログラムはそれ以上進まず、アラートも表示されないのです return(Ticket);? NADYA 2011.11.30 12:05 #46 アラートウィンドウは、ポジションを開く ためのシグナルが全くなかった場合にのみポップアップし、必然的に-1が表示されることが判明しました。 asasusa 2011.11.30 12:18 #47 つまり、一度注文がTicket変数に番号を割り当てたら、returnで出力する必要はなく、次のtickでさらに変数が削除されることはないのですね。 asasusa 2011.12.01 05:21 #48 同時に複数の注文を出すことは可能ですか?例えば、こんな感じです。 if(условие выполнено) { OrderSend() OrderSend() OrderSend() } Всеволод 2011.12.01 05:31 #49 sss2019:同時に複数の注文を出すことは可能ですか?例えば、こんな感じです。 最初のリクエストはサーバーで処理され、次のリクエストはエラーになるため、そのように動作しない場合があります。エラー 処理を施した独自のオーダーを使用するのがよいでしょう。 PapaYozh 2011.12.01 05:53 #50 sss2019: 同時に複数の注文を出すことは可能ですか?例えばこんな感じ? 一度に全部は無理です。 連続のみ。 1234567 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
わーありがとうございます!この方法の方が汎用性が高い気がします。
ところで、OrderSendはオーダーチケットのみを送信するとのことですが、EAではどのようにオーダーがオープンされたことを宣言するのでしょうか?もしかしたら、OrderSelectを使って実装できるかもしれませんね。
初期化ブロックの前に、オーダーチケットを格納する変数を宣言しておきましょう。例えば、こんな感じです。
int チケット
start()関数の中で、OrderSend()を呼び出す 前に、こう記述しています。
チケット=-1。
OrderSend()関数は注文のチケットを返すので、Ticket変数が0より大きければ、注文が成立していることを確認します。そうでなければ、注文はありません。OrderSendのリファレンスを参照してください。そこには、注文を設定できない場合、この関数はティックではなく値=(-1)を返すと書かれています。次のティックでは、最初にvalue = -1で初期化され、オーダーが設定されていないため、コードは終了するまで変数は負のままです。そして、これは新しい注文が入るまで続きます。
苦労しているので、例を示していただけませんか。
なぜTicket=(-1);が括弧内にあるのですか?
注文が開いてるのにチケットが-1ってどういう了見だ。
return(Ticket);?
同時に複数の注文を出すことは可能ですか?例えば、こんな感じです。
同時に複数の注文を出すことは可能ですか?例えば、こんな感じです。
同時に複数の注文を出すことは可能ですか?例えばこんな感じ?
一度に全部は無理です。
連続のみ。