1

takeprofit関数にandstoploss引数を挿入しようとしてSendOrder()いますが、次のエラーが発生します。

Order Sent Failed with Error #130

これは私のコードです:

extern double takeprofit = 30.0;
extern double stoploss   = 20.0;

stoploss   = NormalizeDouble( stoploss,   5 );                  // SET stop loss
Print( "stoploss", stoploss );

takeprofit = NormalizeDouble( takeprofit, 5 );                  // SET take profit

ticket     = OrderSend( Symbol(),
                        OP_SELL,
                        lotsize,
                        Ask,
                        100,
                        stoploss,
                        takeprofit,
                        0,
                        0,
                        0,
                        CLR_NONE
                        );
if (  ticket < 0 ) {
      Print( "Order send failed with error #", GetLastError() );
   }
else  Print( "Order send sucesso!!" );

function のドキュメントを既に確認しましたNormalizeDouble()が、まだエラーが発生しています。

私は何をすべきか?

4

1 に答える 1

2

A ) MQL4OrderSend()構文要件に完全に準拠する

int    anOrderTKT;                                // DECLARE int
double anOrderLotSIZE;                            // DECLARE double
string anOrderCommentSTRING;                      // DECLARE string

anOrderTKT = OrderSend( _Symbol,                  // CPU-glitch, is faster than calling Symbol(),
                        OP_SELL,                  // XTO.Type
                        anOrderLotSIZE,           // XTO.Size       [LT]s
                        Bid,                      // XTO.EntryPRICE { OP_BUY: Ask | OP_SELL: Bid }
                        100,                      // XTO.SLIPPAGE   [PT]s
                        0,                        // XTO.SL_PRICE
                        0,                        // XTO.TP_PRICE,
                        anOrderCommentSTRING,     // XTO.Comment
                        0,                        // XTO.MagNUM#
                        0,                        // XTO.PendingOrderEXPIRE
                        CLR_NONE                  // GUI.MarkerCOLOR
                        );                        // ==> { EMPTY | aTkt# }

あなたのコードは正しい SHORT トレード Entry-Price の設定に失敗しBidますAsk。 .

あなたのコードは、期待される場所でint( )を割り当てることに失敗します。0string

B) エラー 130: == 「無効な停止」

ブローカーにいくつかの詳細を確認する必要があります。

  1. 彼らの利用規約は、OrderSend()ワンストップの指示、インクルード、TP と SL を許可していますか、それともブローカーの T&C は、最初に取引ポジションを開くことを要求し、その後、OrderModify()TP と SL の価格レベルをセットアップするための指示を許可しますか?
  2. いずれの場合も、ブローカーの T&C 設定と距離を確認してください。STOPLEVELこのFREEZELEVEL範囲内では、ブローカーは TP と SL の設定またはその変更を拒否します。

externC)イテレータ変数に割り当てないことをお勧めします

これは問題の根本原因ではありませんが、業界のベスト プラクティスに慣れてください。その 1 つは、宣言された に値を割り当てないことexternです。むしろ、スコープとその割り当てを制御する独自の変数を宣言しますがextern、コード側からは触れないでください。

于 2014-10-14T05:09:43.310 に答える