qjol さんへ。
意味がよくわからないのですが、説明していただけませんか?ありがとうございます。
私たちのコードでは
if (bar3>1) OrderClose(OrderTicket(), OrderLots(),Ask,3,Red);
OrderTicket() とOrderLots() を使っていますが 、 これらの関数は OrderSelect() を 使わなければ なりません。
ドキュメントにあるように、
。
注
チケット番号で注文が選択された場合、pool パラメータは無視されます。チケット番号は、一意のオーダー識別子です。
注文がどのリストから選択されたかを調べるには、その終了時刻を分析する必要があります。注文の終値が0であれば、その注文は未決済または保留で、端末のオープンポジション・リストから取得されます。
注文の種類によって、未決済ポジションと保留中の注文を区別することができます。注文の終了時刻が0でない場合、その注文は終了した注文または削除された保留中の注文であり、ターミナルの履歴から選択されたものです。 また、注文の種類によっても互いに異なる。
OrderSelect() 関数は注文データをプログラム環境にコピーし、それ以降のOrderClosePrice(),OrderCloseTime(),OrderComment(),OrderCommission(),OrderExpiration(),OrderLots(),OrderMagicNumber() のすべてのコールを実行します。OrderOpenPrice(),OrderOpenTime(),OrderPrint(),OrderProfit(),OrderStopLoss(),OrderSwap(),OrderSymbol(),OrderTakeProfit(),OrderTicket(),OrderType() 関数は以前にコピーしたデータを返送します。これは、場合によっては、注文の詳細(オープンプライス、SL/TPレベル、有効期限)が変更され、データが非現実的になる可能性があることを意味します。注文データを要求する前に、OrderSelect()関数を呼び出すことを強くお勧めします。
実際のチケット番号とロットを使用する場合は、OrderSelectを使用 する必要はありませんね?私は一度に1つの注文を開くだけですが、開いている注文のチケット番号を取得する方法を知っていますか?
ありがとうございました。
親愛なる皆様へ
OrderSelect()を挿入したのですが、OrderCloseがまだ機能して いないので、助けてください。
//+------------------------------------------------------------------+ //| chuale.mq4 | //| Copyright 2014, MetaQuotes Software Corp. | //| http://www.abc.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2014, MetaQuotes Software Corp." #property link "http://www.abc.com" #property version "1.00" #property strict extern double TakeProfit=500; extern double Lots=0.1; extern double StopLoss=300; double bar1; double bar2; double bar3; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int init() { //--- //--- return(0); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //--- return(0); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ int start() { int ticket; int total=OrdersTotal(); int counted_bars=IndicatorCounted(); if(counted_bars>0) counted_bars--; { bar1=(iClose(Symbol(),PERIOD_M1,2)-iClose(Symbol(),PERIOD_M1,3))*100; bar2=(iClose(Symbol(),PERIOD_M1,1)-iClose(Symbol(),PERIOD_M1,2))*100; bar3=(iClose(Symbol(),PERIOD_M1,0)-iClose(Symbol(),PERIOD_M1,1))*100; if (bar2>1) { if(total<1) ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"Chua EA",12345,0,Green); OrderSelect(1,SELECT_BY_POS); if (bar3 <-1) OrderClose(OrderTicket(),Lots,Bid,3,Green); } if (bar2<-1) { if(total<1) ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Bid+-TakeProfit*Point,"Chua EA",12345,0,Red); if ( bar3>1) OrderClose(OrderTicket(), Lots,Ask,3,Red); } } return(0); //--- return(0); } //+------------------------------------------------------------------+
皆さん、こんにちは。
現在、OrderTicket()とOrderLots()を使わずにOrderCloseでチケットとロットを挿入していますが、注文も閉じられません。助けてください。
//+------------------------------------------------------------------+ //| chuale.mq4 | //| Copyright 2014, MetaQuotes Software Corp. | //| http://www.abc.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2014, MetaQuotes Software Corp." #property link "http://www.abc.com" #property version "1.00" #property strict extern double TakeProfit=500; extern double Lots=0.1; extern double StopLoss=300; double bar1; double bar2; double bar3; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int init() { //--- //--- return(0); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //--- return(0); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ int start() { int ticket; int total=OrdersTotal(); int counted_bars=IndicatorCounted(); if(counted_bars>0) counted_bars--; { bar1=(iClose(Symbol(),PERIOD_M1,2)-iClose(Symbol(),PERIOD_M1,3))*100; bar2=(iClose(Symbol(),PERIOD_M1,1)-iClose(Symbol(),PERIOD_M1,2))*100; bar3=(iClose(Symbol(),PERIOD_M1,0)-iClose(Symbol(),PERIOD_M1,1))*100; if (bar2>1) { if(total<1) ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"Chua EA",12345,0,Green); if (bar3 <-1) OrderClose(ticket,Lots,Bid,3,Green); } if (bar2<-1) { if(total<1) ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Bid+-TakeProfit*Point,"Chua EA",12345,0,Red); if ( bar3>1) OrderClose(ticket, Lots,Ask,3,Red); } } return(0); //--- return(0); } //+------------------------------------------------------------------+
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
こんにちは。
私のEAでは以下のようなコーディングをしていますが、なぜOrderCloseがトリガーされないのか、教えてください。OrderSelect() を使用する必要がありますか?OrderSelect()の目的は何ですか?ありがとうございます。