エラー、バグ、質問 - ページ 809

 

OnTradeTransaction イベントでストップロスやテイクプロフィットを決定する問題に戻ります。私は、構造体のすべてのフィールドを出力する以下のログを持っています(MetaQuotesの例から取得)、これはもはやテスターではなく、オンラインのコンテストです。ここで、買いが入りました。

ON 0 transactions (EURUSD,H1) 11:14:23 OrderSendWrapper:0.10 EURUSD BUY JK 0 transactions (EURUSD,H1) 11:14:23 _OrderSend price=1.23575 vol=0.0 (EURUSD,H1) 11:14:23 _OrderSend price=1.23575 vol=0.10 GM 0件の取引 (EURUSD,H1) 11:14:24 TRADE_TRANSACTION_REQUEST OH 0件の取引 (EURUSD,H1) 11:14:24 ------------RequestDescription PK 0件の取引 (EURUSD,H1) 11:14:24 TRADE_ACTION_DEAL DJ 0件の取引 (EURUSD,H1) 11:14:24 Symbol: EURUSD FN 0件の取引 (EURUSD,H1) 11:14:24 Magic Number.H1 (EURUSD,H3) 11:15:230 PD 0件 (EURUSD,H1) 11:14:24 注文チケット: 11670896 PL 0件 (EURUSD,H1) 11:14:24 注文タイプ: ORDER_TYPE_BUY JF 0件 (EURUSD,H1) 11:14:24 注文充填: ORDER_FILLING_FOK FM 0件 (EURUSD,H1) 11:14:24 注文時間タイプ: ORDER_TIME_GTC NG 0件 (EURUSD,H1) 11:14:24 注文期限:1970.EURUSD, H3.01.01 00:00:00 HI 0件 (EURUSD,H1) 11:14:24 Price: 1.23579 EG 0件 (EURUSD,H1) 11:14:24 Deviation points: 10 DR 0件 (EURUSD,H1) 11:14:24 Stop Loss: 1.1.2354 PJ 0件 (EURUSD,H1) 11:14:24 Take Profit: 1.2361 ON 0件 (EURUSD,H1) 11:14:24 Stop Limit: 0 MK 0件 (EURUSD,H1) 11:14:24 Volume: 0.0.1 IQ 0 トランザクション (EURUSD,H1) 11:14:24 Comment: FG 0 トランザクション (EURUSD,H1) 11:14:24 MF 0 トランザクション (EURUSD,H1) 11:14:24 ------------ResultDescription JL 0 トランザクション (EURUSD,H1) 11:14:24 Retcode 10009 ME 0 transactions (EURUSD,H1) 11:14:24 Request ID: 1 RL 0 transactions (EURUSD,H1) 11:14:24 Order ticket: 11670896 NK 0 transactions (EURUSD,H1) 11:14:24 Deal ticket: 10809619 QS 0 transactions (EURUSD,H1) 11:14:24 Volume: 0.0.1 LJ 0件 (EURUSD,H1) 11:14:24 Price: 1.23579 RR 0件 (EURUSD,H1) 11:14:24 Ask: 1.23579 PI 0件 (EURUSD,H1) 11:14:24 Bid: 1.23566 GE 0件 (EURUSD,H1) 11:14:24 コメント:DS 0件 (EURUSD,H1) 11:14:24 GE 0件 (EURUSD,H1) 11:14:24 保留注文券 11670896 LR 0件 (EURUSD,H1) 1114:24 LG 0件 (EURUSD,H1) 11:14:24 ------------TransactionDescription FQ 0件 (EURUSD,H1) 11:14:24 TRADE_TRANSACTION_ORDER_ADD HF 0件 (EURUSD,H1) 11:14:24 Symbol:EURUSD HM 0件 (EURUSD,H1) 11:14:24 取引チケット: 0 DK 0件 (EURUSD,H1) 11:14:24 取引タイプ: DEAL_TYPE_BUY DQ 0件 (EURUSD,H1) 11:14:24 注文チケット: 11670896 DI 0件 (EURUSD,H1) 11:14:2424 注文タイプ: ORDER_TYPE_BUY CR 0件 (EURUSD,H1) 11:14:24 注文状態: ORDER_STATE_STARTED RI 0件 (EURUSD,H1) 11:14:24 注文時間タイプ: ORDER_TIME_GTC JS 0件 (EURUSD,H1) 11:14:24 注文満了: 1970.01.01 00:00 DE 0件 (EURUSD,H1) 11:14:24 Price: 1.23579 QN 0件 (EURUSD,H1) 11:14:24 Price trigger: 0 PG 0件 (EURUSD,H1) 11:14:24 Stop Loss: 1.2354 LM 0件 (EURUSD,H1) 11:14:24 Take Profit: 1.2361 EF 0件 (EURUSD,H1) 11:14:24 Volume: 0.1 (EURUSD:H2) 11:14:24 Price: 1.23579 QN 2件 (EURUSD:H1) 12:14:231 JI 0件 (EURUSD,H1) 11:14:24 NS 0件 (EURUSD,H1) 11:14:24 ------------TransactionDescription HH 0件 (EURUSD,H1) 11:14:24 TRADE_TRANSACTION_ORDER_DELETE DR 0件 (EURUSD,H1) 11:14:24 Symbol: EURUSD LJ 0件 (EURUSD,H1) 11:14:24 Deal ticket: 0 PN 0件 (EURUSD,H1) 11:14:24 Deal type: 0 (EURUSD.H1) 11:14:25 -----------TransactionDescription HH 0件 (EURUSD.H1) 11:14:24 -----------TRANSACTION_DELETE DR 1件の取引。DEAL_TYPE_BUY PD 0件 (EURUSD,H1) 11:14:24 注文チケット:11670896 PL 0件 (EURUSD,H1) 11:14:24 注文種別:ORDER_TYPE_BUY NJ 0件 (EURUSD,H1) 11:11:14:24 注文状態: ORDER_STATE_FILLED PM 0件 (EURUSD,H1) 11:14:24 注文時間タイプ: ORDER_TIME_GTC HG 0件 (EURUSD,H1) 11:14:24 注文期限: 1970年です。01.01 00:00 JI 0件 (EURUSD,H1) 11:14:24 Price: 1.23579 OJ 0件 (EURUSD,H1) 11:14:24 Price trigger: 0 NS 0件 (EURUSD,H1) 11:14:24 Stop Loss: 1.23579.2354 JJ 0件 (EURUSD,H1) 11:14:24 Take Profit: 1.2361 FS 0 件 (EURUSD,H1) 11:14:24 Volume: 0 HE 0 件 (EURUSD,H1) 11:14:24 HN 0 件 (EURUSD,H1) 11:14:24 ------------TransactionDescription FI 0 件 (EURUSD,H1) 11:14:24 TRADE_TRANSACTION_HISTORY_ADD HN 0件 (EURUSD,H1) 11:14:24 Symbol: EURUSD HE 0件 (EURUSD,H1) 11:14:24 Deal ticket: 0 DS 0件 (EURUSD,H1) 11.14.24 11:11:14:24 取引種別:DEAL_TYPE_BUY DI 0件 (EURUSD,H1) 11:14:24 注文チケット:11670896 DQ 0件 (EURUSD,H1) 11:14:24 注文種別:ORDER_TYPE_BUY RF 0件 (EURUSD,H1) 11件14:24 注文状態: ORDER_STATE_FILLED LQ 0件 (EURUSD,H1) 11:14:24 注文時間タイプ: ORDER_TIME_GTC DK 0件 (EURUSD,H1) 11:14:24 注文期限: 1970.01.01 00:00 FM 0件 (EURUSD,H1) 11:14:24 Price: 1.23579 CF 0件 (EURUSD,H1) 11:14:24 Price trigger: 0 RO 0件 (EURUSD,H1) 11:14:24 Stop Loss: 1.2354 NE 0件 (EURUSD,H1) 11:14:24 Take Profit: 1.24.2361 RO 0件 (EURUSD,H1) 11:14:24 Volume: 0 DQ 0件 (EURUSD,H1) 11:14:24 DJ 0件 (EURUSD,H1) 11:14:24 -----------TransactionDescription LQ 0件 (EURUSD,H1) 11:14:24 TRADE_TRANSACTION_DEAL_ADD FK 0件 (EURUSD,H1) 11:14:24 Symbol: EURUSD DR 0件 (EURUSD,H1) 11:14:24 Deal ticket: 10809619 PF 0件 (EURUSD,H1) 11:14:24 取引種類: DEAL_TYPE_BUY PL 0件 (EURUSD,H1) 11:14:24 注文チケット: 11670896 PD 0件 (EURUSD,H1) 11:14:24 注文種類: ORDER_TYPE_BUY GN 0件 (EURUSD,H1) 11.14:23 取引種類: PL 0件 (EURUSD,H1) 11:11:14:24 注文状態: ORDER_STATE_STARTED FE 0件 (EURUSD,H1) 11:14:24 注文時間タイプ: ORDER_TIME_GTC NO 0件 (EURUSD,H1) 11:14:24 注文期限: 1970年です。01.01 00:00:00 HQ 0件 (EURUSD,H1) 11:14:24 Price: 1.23579 MR 0件 (EURUSD,H1) 11:14:24 Price trigger: 0 LK 0件 (EURUSD,H1) 11:14:24 Stop Loss: 1.2354 HR 0件 (EURUSD,H1) 11:14:24 Take Profit: 1.2361 QJ 0件 (EURUSD,H1) 11:14:24 Volume: 0.1 NR 0件 (EURUSD,H1) 11:14:24

そして、ここでテイクプロフィットで終了します。

DJ 0件 (EURUSD,H1) 11:20:38 ------------TransactionDescription JN 0件 (EURUSD,H1) 11:20:38 TRADE_TRANSACTION_ORDER_ADD DH 0件 (EURUSD,H1) 11:20:38 Symbol: EURUSD PP 0件 (EURUSD,H1) 11:20:38 Deal ticket: 0件 PH 0件 (EURUSD,H1) 11:20:38 Deal type: DEAL_TYPE_BUY LR 0件 (EURUSD,H1)20:38 注文チケット:11670968 HG 0件 (EURUSD,H1) 11:20:38 注文タイプ:ORDER_TYPE_SELL MO 0件 (EURUSD,H1) 11:20:38 注文状態: ORDER_STATE_STARTED HF 0件 (EURUSD,H1) 11:20:38 注文時間タイプ: ORDER_TIME_GTC PN 0 件 (EURUSD,H1) 11:20:38 注文満了:1970.EURUSD.H1.H1.01.01 00:00:00 JE 0件 (EURUSD,H1) 11:20:38 Price: 1.2361 MS 0件 (EURUSD,H1) 11:20:38 プライストリガー:0 MJ 0件 (EURUSD,H1) 11:20:38 ストップロス:0 IR 0件 (EURUSD,H1) 11:20:38 利益確定:0 QD 0件 (EURUSD,H1) 11:20:38 ボリューム:0件.1 NO 0件 (EURUSD,H1) 11:20:38 NP 0件 (EURUSD,H1) 11:20:38 ------------TransactionDescription LN 0件 (EURUSD,H1) 11:20:38 TRADE_TRANSACTION_ORDER_DELETE DE 0件 (EURUSD,H1) 11:20:38 Symbol: EURUSD PK 0件 (EURUSD,H1) 11:20:38 Deal ticket: 0 PM 0件の取引き (EURUSD,H1) 11:20:38 Deal type:DEAL_TYPE_BUY LG 0件 (EURUSD,H1) 11:20:38 注文チケット: 11670968 HR 0件 (EURUSD,H1) 11:20:38 注文タイプ: ORDER_TYPE_SELL HH 0件 (EURUSD,H1) 11.20:38 注文チケット: 11670968 LG 0件 (EURUSD,H1) 11.20:38 注文タイプ: ORDER_TYPE_BUY HH 0件 (EURUSD,H1) 11:20:38 注文状態: ORDER_STATE_FILLED FK 0件 (EURUSD,H1) 11:20:38 注文時間タイプ: ORDER_TIME_GTC NQ 0件 (EURUSD,H1) 11:20:38 注文期限: 1970.01.01 00:00:00 HH 0 トランザクション (EURUSD,H1) 11:20:38 Price: 1.2361 KL 0件の取引 (EURUSD,H1) 11:20:38 Price trigger: 0 GG 0 transactions (EURUSD,H1) 11:20:38 Stop Loss: 0 GI 0 transactions (EURUSD,H1) 11:20:38 Take Profit: 0 RS 0 transactions (EURUSD,H1) 11:20:38 Volume.Of.Pirates (EURUSD.H2) 11:20:38 Price trigger: 0 GI 0 transactions (EURUSD.H3) 11:20:40 (EURUSD.H4) 10:20:40 Volume:0 DJ 0 件 (EURUSD,H1) 11:20:38 HO 0 件 (EURUSD,H1) 11:20:38 ------------TransactionDescription JI 0 件 (EURUSD,H1) 11:20:38 TRADE_TRANSACTION_HISTORY_ADD LN 0 件 (EURUSD,H1) 11:20:38 Symbol.LN 1 件 (EURUSD,H2) 11:20:38 -----------Transaction.LI 2 件 (EURUSD.H2) 12:19:38 -----------Transaction.LI 3 件 (EURUSD.H3) 11:20:38EURUSD HF 0件の取引 (EURUSD,H1) 11:20:38 取引チケット:0 HR 0件の取引 (EURUSD,H1) 11:20:38 取引タイプ:DEAL_TYPE_BUY DH 0件の取引 (EURUSD,H1) 11:20:38 注文チケット:11670968 PM 1件の取引 (EURUSD,H1) 11:20:3838 注文タイプ: ORDER_TYPE_SELL PF 0件 (EURUSD,H1) 11:20:38 注文状態: ORDER_STATE_FILLED NQ 0件 (EURUSD,H1) 11:20:38 注文時間タイプ: ORDER_TIME_GTC FK 0件 (EURUSD,H1) 11:20:38 注文期限: 1970.01.01 00:00 PO 0件 (EURUSD,H1) 11:20:38 Price: 1.2361 CF 0 件 (EURUSD,H1) 11:20:38 Price trigger: 0 OM 0 件 (EURUSD,H1) 11:20:38 Stop Loss: 0 OG 0 件 (EURUSD,H1) 11:20:38 Take Profit: 0 JN 0 件 (EURUSD,H1) 11:20:38 Volume:0 LP 0件 (EURUSD,H1) 11:20:38 PE 0件 (EURUSD,H1) 11:20:38 -----------TransactionDescription MR 0件 (EURUSD,H1) 11:20:38 TRADE_TRANSACTION_POSITION JH 0件 (EURUSD,H1) 11:20:38 Symbol:EURUSD JP 0件 (EURUSD,H1) 11:20:38 取引チケット: 0 FH 0件 (EURUSD,H1) 11:20:38 取引タイプ: DEAL_TYPE_BUY HQ 0件 (EURUSD,H1) 11:20:38 注文チケット: 0 DK 0件 (EURUSD,H1) 11:20:38 注文タイプ: 0 FH 1件の取引。ORDER_TYPE_BUY GQ 0件 (EURUSD,H1) 11:20:38 注文状態: ORDER_STATE_STARTED RH 0件 (EURUSD,H1) 11:20:38 注文時間タイプ: ORDER_TIME_GTC JL 0件 (EURUSD,H1) 11:20:38 注文満了: 1970.01.01 00:00:00 HG 0件 (EURUSD,H1) 11:20:38 Price: 1.23579 QP 0件 (EURUSD,H1) 11:20:38 Price trigger: 0 LI 0件 (EURUSD,H1) 11:20:38 Stop Loss: 1.2354 HO 0 件 (EURUSD,H1) 11:20:38 利益確定: 1.2361 QD 0 件 (EURUSD,H1) 11:20:38 出来高: 0.1 NO 0件 (EURUSD,H1) 11:20:38 NP 0件 (EURUSD,H1) 11:20:38 ------------TransactionDescription FO 0件 (EURUSD,H1) 11:20:38 TRADE_TRANSACTION_DEAL_ADD LE 0件 (EURUSD,H1) 11:20:38 Symbol: EURUSD EH 0件 (EURUSD,H1) 11:20:38 Deal ticket: 10809689 RQ 0件 (EURUSD,H1) 11:20:38 Deal type:DEAL_TYPE_SELL DF 0件 (EURUSD,H1) 11:20:38 注文チケット: 11670968 HN 0件 (EURUSD,H1) 11:20:38 注文タイプ: ORDER_TYPE_BUY CD 0件 (EURUSD,H1) 11.20:38 注文チケット: 11670968 DF 1件 (EURUSD,H1) 11:20:38 注文状態: ORDER_STATE_STARTED NK 0件 (EURUSD,H1) 11:20:38 注文時間タイプ: ORDER_TIME_GTC FQ 0件 (EURUSD,H1) 11:20:38 注文期限: 1970年です。01.01 00:00:00 PI 0件 (EURUSD,H1) 11:20:38 Price: 1.2361 CL 0件 (EURUSD,H1) 11:20:38 Price trigger: 0 OG 0件 (EURUSD,H1) 11:20:38 Stop Loss: 0 OI 0件 (EURUSD,H1) 11:20:38 Take Profit: 0 KQ 0 件 (EURUSD,H1) 11:20:38 Volume: 0.1

これらの取引を統合する唯一のものは価格です(終値は TP価格と等しい)。質問-TPの事実の判断はそれでいいのでしょうか?Imho, inconvenient and ambiguous (If I remember correctly, the exact TP price may not happen and TP will be closed at the nearest other price).

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 

こんにちは。もしかしたら、私が鈍感なのかもしれないし、当たり前のことが理解できていないかもしれないので、あらかじめ謝っておきます。iMAインジケータを使おうとしているのですが、読んだ例にしたがって書こうとしています。

一般的には、このようにするようにしています。EAの全機能の上に立つことを宣言します。

double      MA[];                // массив для индикатора iMA
//---- handles for indicators
int         MA_handle;           // указатель на индикатор iMA

そして、OnTick() 関数で動作する関数を使用します。サンプルでは、関数そのものは一番下にあります。実際には、とりあえず配列の最後のゼロの値だけを使うことにします。

 if (EURNZD_d1 != 0.0) countq++;
      EURUSD_d1 = CalculateStrengthPairsTF("EURUSD"+dop_symb, PERIOD_D1);
      if (EURUSD_d1 != 0.0) countq++;
      EURCAD_d1 = CalculateStrengthPairsTF("EURCAD"+dop_symb, PERIOD_D1);
      if (EURCAD_d1 != 0.0) countq++;
      EURGBP_d1 = CalculateStrengthPairsTF("EURGBP"+dop_symb, PERIOD_D1);
      if (EURGBP_d1 != 0.0) countq++;
      EURAUD_d1 = CalculateStrengthPairsTF("EURAUD"+dop_symb, PERIOD_D1);
      if (EURAUD_d1 != 0.0) countq++;
      EURCHF_d1 = CalculateStrengthPairsTF("EURCHF"+dop_symb, PERIOD_D1);
      if (EURCHF_d1 != 0.0) countq++;
      if (countq != 0) D1_eur = NormalizeDouble((EURJPY_d1 + EURNZD_d1 + EURUSD_d1 + EURCAD_d1 + EURGBP_d1 + EURAUD_d1 + EURCHF_d1) / countq, 0);
   }
   int l_count_4 = 0;
   AVG_eur = 0;
   if (M1_eur != 0.0) l_count_4++;
   if (M5_eur != 0.0) l_count_4++;
   if (M15_eur != 0.0) l_count_4++;
   if (M30_eur != 0.0) l_count_4++;
   if (H1_eur != 0.0) l_count_4++;
   if (H4_eur != 0.0) l_count_4++;
   if (D1_eur != 0.0) l_count_4++;
   if (l_count_4 != 0) AVG_eur = (M1_eur + M5_eur + M15_eur + M30_eur + H1_eur + H4_eur + D1_eur) / l_count_4;
}

double CalculateStrengthPairsTF(string a_symbol, int a_timeframe) {
    int DIGITS_ = SymbolInfoInteger(a_symbol,SYMBOL_DIGITS);
   //---
    MqlTick last_tick;
   if(SymbolInfoTick(a_symbol,last_tick));
   double BID_ = last_tick.bid;
   BID_ = NormalizeDouble( BID_, DIGITS_);
    MA_handle=iMA(a_symbol,a_timeframe,Period_,0,method_ma,price_applied);
    //--- заполнение массива MA[] текущими значениями индикатора iMA
   //--- в массив будет записано 100 элементов
   CopyBuffer(MA_handle,0,0,100,MA);
   //--- задаём порядок индексации массива MA[] как в MQL4
   ArraySetAsSeries(MA,true);  
   double iMA_ = NormalizeDouble(MA[0], DIGITS_);

ラストゼロ値のみ使用します。

エラー 'a_timeframe' - enumを変換できない Owl.mq5 2009 28

このイミノ変数についてですが、文字列型の命令の中にあって、青く光っていること自体が見えますよね...。

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 
Dimka-novitsek:

Writes error 'a_timeframe' - can't convert enum Owl.mq5 2009 28

ENUM_TIMEFRAMES タイプで義務付ける。
 

ありがとうございます!!!double、string、intと同じですか?よくわからないのですが、すみません、このタイプはどこに入れればいいのでしょうか?

ありがとうございます。

 
Valmars:
これは純粋にテスターのバグです。TRADE_TRANSACTION_DEAL_ADDのTrans.price_tpフィールドには、0またはゴミが含まれている可能性があります。オンライントレードでは、すべてを正しく出力します。
ありがとうございます。固定されています。次のビルドで修正版を提供する予定です。
 
//+------------------------------------------------------------------+
| | cs2011.mq5
//| Xupypr|著作権 © 2011, Xupypr|日本語訳はこちら
//+------------------------------------------------------------------+
#property copyright "著作権 © 2011, Xupypr"
#property version "1.1"
//+-----------------------------------+
input double Risk=3; // スタートロット
入力 int TP=2200;
入力 int SL=0;
入力 int Fast=30;
入力 int Slow=500;
input int Sign=36;
//+-----------------------------------+
int Money, Deposit=5000;
int MACD。
//+-----------------------------------+
void OnInit()
{
MACD=iMACD(NULL,0,Fast,Slow,Sign,PRICE_CLOSE)。
}
//+-----------------------------------+
void OnTick()
{
static bool UpSignal,DnSignal;
if(TradeSignalCounter(UpSignal,DnSignal))TradePerformer(UpSignal,DnSignal)。
}
//+-----------------------------------+
bool TradeSignalCounter(bool &UpSignal,bool &DnSignal)
{
if(Bars(_Symbol,0)<100) return(false);
static int Recount;
if(IsNewBar()||再カウント)
{
double Ind[2],Sig[3]。
DnSignal=falseとする。
UpSignal=falseとした。
Recount=false。
if(CopyBuffer(MACD,0,1,2,Ind)<0) Recount=true。
if(CopyBuffer(MACD,1,1,3,Sig)<0) Recount=true。
if(Recount==true) return(false);
if(Ind[0]>0 && Ind[1]<0) DnSignal=trueとする。
if(Ind[0]<0 && Ind[1]>0) UpSignal=true。
if(Ind[1]<0 && Sig[0]<Sig[1] && Sig[1]>Sig[2]) DnSignal=trueとする。
if(Ind[1]>0 && Sig[0]>Sig[1] && Sig[1]<Sig[2]) UpSignal=trueとする。
return(true)です。
}
return(false)です。
}
//+-----------------------------------+
bool TradePerformer(bool &UpSignal,bool &DnSignal)
{
if(UpSignal)
{
if(PositionOpen(POSITION_TYPE_BUY))とする。UpSignal=falseとした。
}
if(DnSignal)
{
if(PositionOpen(POSITION_TYPE_SELL))の場合。DnSignal=falseとする。
}
return(true)です。
}
//+-----------------------------------+
double Money_M()
{
HistorySelect(0,TimeCurrent())。
int total=HistoryDealsTotal();
double profit=0;
for(int i=0;i<total;i++)
{
ulong deal_ticket=HistoryDealGetTicket(i);
if(HistoryDealGetString(deal_ticket,DEAL_SYMBOL)!=_Symbol)を続ける。
if(HistoryDealGetInteger(deal_ticket,DEAL_TYPE)>1) continue;
profit+=HistoryDealGetDouble(deal_ticket,DEAL_PROFIT)とする。
profit+=HistoryDealGetDouble(deal_ticket,DEAL_SWAP)。
}
お金=預金+利益。
if(PositionSelect(_Symbol))
{
Money+=PositionGetDouble(POSITION_PROFIT)となります。
Money+=PositionGetDouble(POSITION_SWAP)です。
}
double Min=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
double Limit=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_LIMIT);
double Lots=Risk*Money/Deposit;
Lots=MathMin(Limit,MathMax(Min,Lots))となります。
return(Lots)です。
}
//+-----------------------------------+
bool PositionOpen(ENUM_POSITION_TYPE Type)
{
MqlTradeRequest リクエスト。
MqlTradeResultの結果。
MqlTradeCheckResultの チェック。
double volume=Money_M();
double takeprofit=0,stoploss=0。
if(PositionSelect(_Symbol))
{
double volumepos=PositionGetDouble(POSITION_VOLUME)。
if(PositionGetInteger(POSITION_TYPE)==Type) volume-=volumepos.If(PositionGetInteger(POSITION_TYPE)==Type)とする。
else volume+=volumepos;
}
for(int i=0;i<10;i++)
{
volume=NormalizeDouble(volume,1)です。
if(volume<=0) break;
if(タイプ==POSITION_TYPE_SELL)
{
request.type=ORDER_TYPE_SELL。
request.price=SymbolInfoDouble(_Symbol,SYMBOL_BID);
if(TP!=0) takeprofit = request.price-TP*_Point;
if(SL!=0) stoploss = request.price+SL*_Point;
}
if(タイプ==POSITION_TYPE_BUY)
{
request.type=ORDER_TYPE_BUY。
request.price=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
if(TP!=0) takeprofit = request.price+TP*_Point;
if(SL!=0) stoploss = request.price-SL*_Point;
}
request.action = TRADE_ACTION_DEAL;
request.symbol = _Symbol;
request.volume = MathMin(volume,SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX));
request.sl = stoploss;
request.tp = takeprofit;
request.deviation=SymbolInfoInteger(_Symbol,SYMBOL_SPREAD)。
request.type_filling=ORDER_FILLING_AON;
request.comment=DoubleToString(Money,2)+"$"です。
if(!OrderCheck(request,check))。
{
if(check.margin_level<100) volume=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP);
Print("OrderCheck Code: ",check.retcode);
を続ける。
}
if(!OrderSend(request,result) || result.deal==0)
{
Print("OrderSendコード: ",result.retcode)。
if(result.retcode==TRADE_RETCODE_TRADE_DISABLED) break;
if(result.retcode==TRADE_RETCODE_MARKET_CLOSED) break;
if(result.retcode==TRADE_RETCODE_NO_MONEY) break;
if(result.retcode==TRADE_RETCODE_TOO_MANY_REQUESTS) Sleep(5000);
if(result.retcode==TRADE_RETCODE_FROZEN) break;
if(result.retcode==TRADE_RETCODE_CONNECTION) Sleep(15000);
if(result.retcode==TRADE_RETCODE_LIMIT_VOLUME) break;
}
else volume-=result.volume。
Sleep(1000)です。
}
if(!PositionSelect(_Symbol)) return(false);
return(true)です。
}
//+-----------------------------------+
bool IsNewBar()
{
static datetime Told;
datetime Tnew[1]。
CopyTime(_Symbol,PERIOD_CURRENT,0,1,Tnew)です。
if(Tnew[0]!=Told)とする。
{
Told=Tnew[0]です。
return(true)です。
}
return(false)です。
}
//+-----------------------------------+

EA の request.type_filling=ORDER_FILLING_AON; の行にエラー 'ORDER_FILLING_AON' - undeeclared identifier cs2011.mq5 127 28 in version 697 が発生する理由を教えて下さい。



Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результатов проверки торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результатов проверки торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура результатов проверки торгового запроса - Документация по MQL5
 
FRX154:

EA の request.type_filling=ORDER_FILLING_AON; の行にエラー 'ORDER_FILLING_AON' - undeeclared identifier cs2011.mq5 127 28 in version 697 が発生する理由を教えて下さい。

EAが書か れた当時と文言が変わっているからです。

この行に request.type_filling=ORDER_FILLING_AON を入れてください。

request.type_filling=ORDER_FILLING_FOK; で、グッドラック。

または、0を入れるだけです。

request.type_filling=0;

も動作します。

PSまたはその代わりに(EA全体を編集する必要がないように)、すべての一番上にパッチを置くことができます。

#define ORDER_FILLING_AON ORDER_FILLING_FOK

ORDER_FILLING_AONが何度も出てくるので、念のためです。

 
ターミナルでNavigatorのインジケータをチャートに貼り付けると、なぜかインジケータ用の領域が空っぽになり、インジケータ自体は表示されないのですが、チャートのインデックスのリストを開くと「デバッグ中」というメモとともに表示される、という図です。このバグは何なのか、どう戦えばいいのか。
 
marketeer:
ターミナルでNavigatorのインジケータをチャートに貼り付けると、なぜかインジケータ用の領域が空っぽになり、インジケータ自体は表示されないのですが、チャートのインデックスのリストを開くと「デバッグ中」というメモとともに表示される、という図です。このバグは何なのか、どう対処すればいいのか。
リコンパイル
 

良い人、助けて!」。

最も単純なコードを例にとると

#property copyright "Copyright 2011,"
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
double Vhod;
       Vhod=linfunc(15);

//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
     }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
     }
//+------------------------------------------------------------------+
double  linfunc(int b) // имя функции и список параметров
  {
  double a;
   while((a/b)<1 && !IsStopped())//---------
     {
      a=a+1;
     }
     double f=a+b;
// составной оператор
   return(a+b);           // возвращаемое значение

  }

687ビルドでコンパイルして、デバッガでVhod=0を取得します。

どのように理解していますか?同時に、Vhod=30になることもあった。(不思議だけど本当)。

returnは無意味なものを返す...

この不具合は何なのか、それとも私が見逃しているのか?