Errori, bug, domande - pagina 809

 

Tornando alla questione della determinazione di stoploss e takeprofits nell'evento OnTradeTransaction. Ho il seguente log che mostra tutti i campi delle strutture (preso dall'esempio di MetaQuotes), e questo non è più un tester ma un concorso online. Qui abbiamo un acquisto:

ON 0 transazioni (EURUSD,H1) 11:14:23 OrderSendWrapper:0.10 EURUSD BUY JK 0 transazioni (EURUSD,H1) 11:14:23 _OrderSend price=1.23575 vol=0.10 GM 0 transazioni (EURUSD,H1) 11:14:24 TRADE_TRANSACTION_REQUEST OH 0 transazioni (EURUSD,H1) 11:14:24 ------------RequestDescription PK 0 transazioni (EURUSD,H1) 11:14:24 TRADE_ACTION_DEAL DJ 0 transazioni (EURUSD,H1) 11:14:24 Symbol: EURUSD FN 0 transazioni (EURUSD,H1) 11:14:24 Magic Number: 0 PD 0 transazioni (EURUSD,H1) 11:14:24 Biglietto d'ordine: 11670896 PL 0 transazioni (EURUSD,H1) 11:14:24 Tipo di ordine: ORDER_TYPE_BUY JF 0 transazioni (EURUSD,H1) 11:14:24 Riempimento ordine: ORDER_FILLING_FOK FM 0 transazioni (EURUSD,H1) 11:14:24 Tipo tempo ordine: ORDER_TIME_GTC NG 0 operazioni (EURUSD,H1) 11:14:24 Scadenza ordine: 1970.01.01 00:00:00 HI 0 transazioni (EURUSD,H1) 11:14:24 Prezzo: 1.23579 EG 0 transazioni (EURUSD,H1) 11:14:24 Punti di deviazione: 10 DR 0 transazioni (EURUSD,H1) 11:14:24 Stop Loss: 1.2354 PJ 0 transazioni (EURUSD,H1) 11:14:24 Take Profit: 1.2361 ON 0 transazioni (EURUSD,H1) 11:14:24 Stop Limit: 0 MK 0 transazioni (EURUSD,H1) 11:14:24 Volume: 0.1 IQ 0 transazioni (EURUSD,H1) 11:14:24 Commento: FG 0 transazioni (EURUSD,H1) 11:14:24 MF 0 transazioni (EURUSD,H1) 11:14:24 ------------ResultDescription JL 0 transazioni (EURUSD,H1) 11:14:24 Retcode 10009 ME 0 transazioni (EURUSD,H1) 11:14:24 Request ID: 1 RL 0 transazioni (EURUSD,H1) 11:14:24 Biglietto d'ordine: 11670896 NK 0 transazioni (EURUSD,H1) 11:14:24 Deal ticket: 10809619 QS 0 transazioni (EURUSD,H1) 11:14:24 Volume: 0.1 LJ 0 transazioni (EURUSD,H1) 11:14:24 Prezzo: 1,23579 RR 0 transazioni (EURUSD,H1) 11:14:24 Richiesta: 1,23579 PI 0 transazioni (EURUSD,H1) 11:14:24 Offerta: 1.23566 GE 0 transazioni (EURUSD,H1) 11:14:24 Commento: DS 0 transazioni (EURUSD,H1) 11:14:24 GE 0 transazioni (EURUSD,H1) 11:14:24 Pending Order Ticket 11670896 LR 0 transazioni (EURUSD,H1) 1114:24 LG 0 transazioni (EURUSD,H1) 11:14:24 ------------TransactionDescription FQ 0 transazioni (EURUSD,H1) 11:14:24 TRADE_TRANSACTION_ORDER_ADD HF 0 transazioni (EURUSD,H1) 11:14:24 Symbol: EURUSD HM 0 transazioni (EURUSD,H1) 11:14:24 Biglietto d'affare: 0 DK 0 transazioni (EURUSD,H1) 11:14:24 Tipo di affare: DEAL_TYPE_BUY DQ 0 transazioni (EURUSD,H1) 11:14:24 Biglietto d'ordine: 11670896 DI 0 operazioni (EURUSD,H1) 11:14:2424 Tipo di ordine: ORDER_TYPE_BUY CR 0 transazioni (EURUSD,H1) 11:14:24 Stato dell'ordine: ORDER_STATE_STARTED RI 0 transazioni (EURUSD,H1) 11:14:24 Tipo di tempo dell'ordine: ORDER_TIME_GTC JS 0 transazioni (EURUSD,H1) 11:14:24 Scadenza ordine: 1970.01.01 00:00 DE 0 transazioni (EURUSD,H1) 11:14:24 Prezzo: 1.23579 QN 0 transazioni (EURUSD,H1) 11:14:24 Innesco prezzo: 0 PG 0 transazioni (EURUSD,H1) 11:14:24 Stop Loss: 1.2354 LM 0 transazioni (EURUSD,H1) 11:14:24 Prendi profitto: 1.2361 EF 0 transazioni (EURUSD,H1) 11:14:24 Volume: 0.1 JI 0 transazioni (EURUSD,H1) 11:14:24 NS 0 transazioni (EURUSD,H1) 11:14:24 ------------TransactionDescription HH 0 transazioni (EURUSD,H1) 11:14:24 TRADE_TRANSACTION_ORDER_DELETE DR 0 transazioni (EURUSD,H1) 11:14:24 Simbolo: EURUSD LJ 0 transazioni (EURUSD,H1) 11:14:24 Biglietto dell'affare: 0 PN 0 transazioni (EURUSD,H1) 11:14:24 Tipo di affare: DEAL_TYPE_BUY PD 0 transazioni (EURUSD,H1) 11:14:24 Biglietto d'ordine: 11670896 PL 0 transazioni (EURUSD,H1) 11:14:24 Tipo di ordine: ORDER_TYPE_BUY NJ 0 transazioni (EURUSD,H1) 11:11:14:24 Stato dell'ordine: ORDER_STATE_FILLED PM 0 transazioni (EURUSD,H1) 11:14:24 Tipo tempo ordine: ORDER_TIME_GTC HG 0 transazioni (EURUSD,H1) 11:14:24 Scadenza ordine: 1970.01.01 00:00 JI 0 transazioni (EURUSD,H1) 11:14:24 Prezzo: 1,23579 OJ 0 transazioni (EURUSD,H1) 11:14:24 Innesco prezzo: 0 NS 0 transazioni (EURUSD,H1) 11:14:24 Stop Loss: 1.2354 JJ 0 transazioni (EURUSD,H1) 11:14:24 Take Profit: 1.2361 FS 0 transazioni (EURUSD,H1) 11:14:24 Volume: 0 HE 0 transazioni (EURUSD,H1) 11:14:24 HN 0 transazioni (EURUSD,H1) 11:14:24 ------------TransactionDescription FI 0 transazioni (EURUSD,H1) 11.:14:24 TRADE_TRANSACTION_HISTORY_ADD HN 0 transazioni (EURUSD,H1) 11:14:24 Simbolo: EURUSD HE 0 transazioni (EURUSD,H1) 11:14:24 Deal ticket: 0 DS 0 transazioni (EURUSD,H1) 11:11:14:24 Tipo di affare: DEAL_TYPE_BUY DI 0 operazioni (EURUSD,H1) 11:14:24 Biglietto d'ordine: 11670896 DQ 0 operazioni (EURUSD,H1) 11:14:24 Tipo di ordine: ORDER_TYPE_BUY RF 0 operazioni (EURUSD,H1) 1114:24 Stato dell'ordine: ORDER_STATE_FILLED LQ 0 transazioni (EURUSD,H1) 11:14:24 Tipo di tempo dell'ordine: ORDER_TIME_GTC DK 0 transazioni (EURUSD,H1) 11:14:24 Scadenza ordine: 1970.01.01 00:00 FM 0 transazioni (EURUSD,H1) 11:14:24 Prezzo: 1.23579 CF 0 transazioni (EURUSD,H1) 11:14:24 Innesco prezzo: 0 RO 0 transazioni (EURUSD,H1) 11:14:24 Stop Loss: 1.2354 NE 0 transazioni (EURUSD,H1) 11:14:24 Take Profit: 1.2361 RO 0 transazioni (EURUSD,H1) 11:14:24 Volume: 0 DQ 0 transazioni (EURUSD,H1) 11:14:24 DJ 0 transazioni (EURUSD,H1) 11:14:24 ------------TransactionDescription LQ 0 transazioni (EURUSD,H1) 11.:14:24 TRADE_TRANSACTION_DEAL_ADD FK 0 transazioni (EURUSD,H1) 11:14:24 Simbolo: EURUSD DR 0 transazioni (EURUSD,H1) 11:14:24 Deal ticket: 10809619 PF 0 transazioni (EURUSD,H1) 11:14:24 Tipo di affare: DEAL_TYPE_BUY PL 0 transazioni (EURUSD,H1) 11:14:24 Biglietto d'ordine: 11670896 PD 0 transazioni (EURUSD,H1) 11:14:24 Tipo di ordine: ORDER_TYPE_BUY GN 0 transazioni (EURUSD,H1) 11:11:14:24 Stato dell'ordine: ORDER_STATE_STARTED FE 0 transazioni (EURUSD,H1) 11:14:24 Tipo tempo ordine: ORDER_TIME_GTC NO 0 transazioni (EURUSD,H1) 11:14:24 Scadenza ordine: 1970.01.01 00:00:00 HQ 0 transazioni (EURUSD,H1) 11:14:24 Prezzo: 1.23579 MR 0 transazioni (EURUSD,H1) 11:14:24 Innesco prezzo: 0 LK 0 transazioni (EURUSD,H1) 11:14:24 Stop Loss: 1.2354 HR 0 transazioni (EURUSD,H1) 11:14:24 Prendi profitto: 1.2361 QJ 0 transazioni (EURUSD,H1) 11:14:24 Volume: 0.1 NR 0 transazioni (EURUSD,H1) 11:14:24

E qui si chiude su Take Profit:

DJ 0 transazioni (EURUSD,H1) 11:20:38 ------------TransactionDescription JN 0 transazioni (EURUSD,H1) 11:20:38 TRADE_TRANSACTION_ORDER_ADD DH 0 transazioni (EURUSD,H1) 11:20:38 Simbolo: EURUSD PP 0 transazioni (EURUSD,H1) 11:20:38 Biglietto dell'affare: 0 PH 0 transazioni (EURUSD,H1) 11:20:38 Tipo di affare: DEAL_TYPE_BUY LR 0 operazioni (EURUSD,H1)20:38 Biglietto d'ordine: 11670968 HG 0 transazioni (EURUSD,H1) 11:20:38 Tipo di ordine: ORDER_TYPE_SELL MO 0 transazioni (EURUSD,H1) 11:20:38 Stato dell'ordine: ORDER_STATE_STARTED HF 0 transazioni (EURUSD,H1) 11:20:38 Tipo di tempo dell'ordine: ORDER_TIME_GTC PN 0 transazioni (EURUSD,H1) 11:20:38 Scadenza ordine: 1970.01.01 00:00:00 JE 0 transazioni (EURUSD,H1) 11:20:38 Prezzo: 1.2361 MS 0 transazioni (EURUSD,H1) 11:20:38 Innesco del prezzo: 0 MJ 0 transazioni (EURUSD,H1) 11:20:38 Stop Loss: 0 IR 0 transazioni (EURUSD,H1) 11:20:38 Prendi profitto: 0 QD 0 transazioni (EURUSD,H1) 11:20:38 Volume: 0.1 NO 0 transazioni (EURUSD,H1) 11:20:38 NP 0 transazioni (EURUSD,H1) 11:20:38 ------------TransactionDescription LN 0 transazioni (EURUSD,H1) 11:20:38 TRADE_TRANSACTION_ORDER_DELETE DE 0 transazioni (EURUSD,H1) 11:20:38 Symbol: EURUSD PK 0 transazioni (EURUSD,H1) 11:20:38 Deal ticket: 0 PM 0 transazioni (EURUSD,H1) 11:20:38 Deal type: DEAL_TYPE_BUY LG 0 transazioni (EURUSD,H1) 11:20:38 Biglietto d'ordine: 11670968 HR 0 transazioni (EURUSD,H1) 11:20:38 Tipo di ordine: ORDER_TYPE_SELL HH 0 transazioni (EURUSD,H1) 11:20:38 Stato dell'ordine: ORDER_STATE_FILLED FK 0 transazioni (EURUSD,H1) 11:20:38 Tipo tempo ordine: ORDER_TIME_GTC NQ 0 transazioni (EURUSD,H1) 11:20:38 Scadenza ordine: 1970.01.01 00:00:00 HH 0 transazioni (EURUSD,H1) 11:20:38 Prezzo: 1.2361 KL 0 transazioni (EURUSD,H1) 11:20:38 Innesco del prezzo: 0 GG 0 transazioni (EURUSD,H1) 11:20:38 Stop Loss: 0 GI 0 transazioni (EURUSD,H1) 11:20:38 Take Profit: 0 RS 0 transazioni (EURUSD,H1) 11:20:38 Volume: 0 DJ 0 transazioni (EURUSD,H1) 11:20:38 HO 0 transazioni (EURUSD,H1) 11:20:38 ------------TransactionDescription JI 0 transazioni (EURUSD,H1) 11:20:38 TRADE_TRANSACTION_HISTORY_ADD LN 0 transazioni (EURUSD,H1) 11:20:38 Symbol: EURUSD HF 0 transazioni (EURUSD,H1) 11:20:38 Biglietto d'affare: 0 HR 0 transazioni (EURUSD,H1) 11:20:38 Tipo di affare: DEAL_TYPE_BUY DH 0 transazioni (EURUSD,H1) 11:20:38 Biglietto d'ordine: 11670968 PM 0 operazioni (EURUSD,H1) 11:20:3838 Tipo di ordine: ORDER_TYPE_SELL PF 0 transazioni (EURUSD,H1) 11:20:38 Stato dell'ordine: ORDER_STATE_FILLED NQ 0 transazioni (EURUSD,H1) 11:20:38 Tipo di tempo dell'ordine: ORDER_TIME_GTC FK 0 transazioni (EURUSD,H1) 11:20:38 Scadenza ordine: 1970.01.01 00:00 PO 0 transazioni (EURUSD,H1) 11:20:38 Prezzo: 1.2361 CF 0 transazioni (EURUSD,H1) 11:20:38 Innesco del prezzo: 0 OM 0 transazioni (EURUSD,H1) 11:20:38 Stop Loss: 0 OG 0 transazioni (EURUSD,H1) 11:20:38 Take Profit: 0 JN 0 transazioni (EURUSD,H1) 11:20:38 Volume: 0 LP 0 transazioni (EURUSD,H1) 11:20:38 PE 0 transazioni (EURUSD,H1) 11:20:38 ------------TransactionDescription MR 0 transazioni (EURUSD,H1) 11:20:38 TRADE_TRANSACTION_POSITION JH 0 transazioni (EURUSD,H1) 11:20:38 Symbol: EURUSD JP 0 transazioni (EURUSD,H1) 11:20:38 Biglietto d'affare: 0 FH 0 transazioni (EURUSD,H1) 11:20:38 Tipo di affare: DEAL_TYPE_BUY HQ 0 transazioni (EURUSD,H1) 11:20:38 Biglietto d'ordine: 0 DK 0 transazioni (EURUSD,H1) 11:20:38 Tipo di ordine: ORDER_TYPE_BUY GQ 0 transazioni (EURUSD,H1) 11:20:38 Stato dell'ordine: ORDER_STATE_STARTED RH 0 transazioni (EURUSD,H1) 11:20:38 Tipo di tempo dell'ordine: ORDER_TIME_GTC JL 0 transazioni (EURUSD,H1) 11:20:38 Scadenza ordine: 1970.01.01 00:00:00 HG 0 transazioni (EURUSD,H1) 11:20:38 Prezzo: 1,23579 QP 0 transazioni (EURUSD,H1) 11:20:38 Innesco prezzo: 0 LI 0 transazioni (EURUSD,H1) 11:20:38 Stop Loss: 1.2354 HO 0 transazioni (EURUSD,H1) 11:20:38 Take Profit: 1.2361 QD 0 transazioni (EURUSD,H1) 11:20:38 Volume: 0.1 NO 0 transazioni (EURUSD,H1) 11:20:38 NP 0 transazioni (EURUSD,H1) 11:20:38 ------------TransactionDescription FO 0 transazioni (EURUSD,H1) 11:20:38 TRADE_TRANSACTION_DEAL_ADD LE 0 transazioni (EURUSD,H1) 11:20:38 Symbol: EURUSD EH 0 transazioni (EURUSD,H1) 11:20:38 Deal ticket: 10809689 RQ 0 transazioni (EURUSD,H1) 11:20:38 Deal type: DEAL_TYPE_SELL DF 0 transazioni (EURUSD,H1) 11:20:38 Biglietto d'ordine: 11670968 HN 0 transazioni (EURUSD,H1) 11:20:38 Tipo di ordine: ORDER_TYPE_BUY CD 0 transazioni (EURUSD,H1) 11:20:38 Stato dell'ordine: ORDER_STATE_STARTED NK 0 transazioni (EURUSD,H1) 11:20:38 Tipo tempo ordine: ORDER_TIME_GTC FQ 0 transazioni (EURUSD,H1) 11:20:38 Scadenza ordine: 1970.01.01 00:00:00 PI 0 transazioni (EURUSD,H1) 11:20:38 Prezzo: 1.2361 CL 0 transazioni (EURUSD,H1) 11:20:38 Innesco prezzo: 0 OG 0 transazioni (EURUSD,H1) 11:20:38 Stop Loss: 0 OI 0 transazioni (EURUSD,H1) 11:20:38 Take Profit: 0 KQ 0 transazioni (EURUSD,H1) 11:20:38 Volume: 0.1

L'unica cosa che unisce queste transazioni è il prezzo(il prezzo di chiusura è uguale al prezzo TP). Domanda - è questo il modo di determinare il fatto di TP? Imho, scomodo e ambiguo (se ricordo bene, il prezzo esatto del TP può non avvenire e il TP sarà chiuso all'altro prezzo più vicino).

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

Buon pomeriggio! Mi scuso in anticipo, forse sono ottuso o non capisco alcune cose ovvie. Sto cercando di usare l'indicatore iMA, cercando di scrivere secondo gli esempi che ho letto.

In generale, cerco di fare così. Dichiaro in cima, al di sopra di tutte le funzioni di EA.

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

Poi uso una funzione che funzionerà nella funzione OnTick(). Nell'esempio, la funzione stessa è in basso. Infatti, per ora, userò solo l'ultimo valore zero dell'array.

 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_);

Userò solo l'ultimo valore zero.

Errore 'a_timeframe' - non può convertire enum Owl.mq5 2009 28

Per quanto riguarda questa variabile imino, è nell'istruzione string-type, vedete che brilla di blu...

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

Scrive l'errore 'a_timeframe' - non può convertire enum Owl.mq5 2009 28

Obbligarlo con il tipo ENUM_TIMEFRAMES
 

Grazie!!! È lo stesso di double, string o int? Non capisco, scusate, dove devo mettere questo tipo?

Va bene, grazie!

 
Valmars:
Questo è puramente un bug da tester. Il campo Trans.price_tp in caso di TRADE_TRANSACTION_DEAL_ADD può contenere 0 o qualsiasi schifezza. Il trading online emette tutto correttamente.
Grazie. Fisso. Una correzione sarà disponibile nella prossima build.
 
//+------------------------------------------------------------------+
//| cs2011.mq5 |
//| Copyright © 2011, Xupypr |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, Xupypr"
#proprietà versione "1.1"
//+-----------------------------------+
input double Risk=3; // lotto iniziale
ingresso int TP=2200;
ingresso int SL=0;
input int Fast=30;
input 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()
{
statico bool UpSignal,DnSignal;
se(TradeSignalCounter(UpSignal,DnSignal)) TradePerformer(UpSignal,DnSignal);
}
//+-----------------------------------+
bool TradeSignalCounter(bool &UpSignal,bool &DnSignal)
{
se(Bars(_Symbol,0)<100) return(false);
statico int Recount;
if(IsNewBar() || Recount)
{
doppio 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)
{
se(Segnale di salita)
{
se(PositionOpen(POSITION_TYPE_BUY)) UpSignal=false;
}
se(DnSignal)
{
se(PositionOpen(POSITION_TYPE_SELL)) DnSignal=false;
}
return(true);
}
//+-----------------------------------+
doppio Money_M()
{
HistorySelect(0,TimeCurrent());
int total=HistoryDealsTotal();
doppio profitto=0;
for(int i=0;i<totale;i++)
{
ulong deal_ticket=HistoryDealGetTicket(i);
if(HistoryDealGetString(deal_ticket,DEAL_SYMBOL)!=_Symbol) continua;
se(HistoryDealGetInteger(deal_ticket,DEAL_TYPE)>1) continua;
profitto+=HistoryDealGetDouble(deal_ticket,DEAL_PROFIT);
profitto+=HistoryDealGetDouble(deal_ticket,DEAL_SWAP);
}
Denaro=Deposito+profitto;
se(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;
Lotti=MathMin(Limit,MathMax(Min,Lots));
ritorno(Lotti);
}
//+-----------------------------------+
bool PositionOpen(ENUM_POSITION_TYPE Type)
{
Richiesta MqlTradeRequest;
MqlTradeResult risultato;
doppio volume=Money_M();
doppio takeprofit=0,stoploss=0;
se(PositionSelect(_Symbol))
{
double volumepos=PositionGetDouble(POSITION_VOLUME);
if(PositionGetInteger(POSITION_TYPE)==Type) volume-=volumepos;
else volume+=volumepos;
}
for(int i=0;i<10;i++)
{
volume=NormalizeDouble(volume,1);
if(volume<=0) break;
se(Tipo==POSIZIONE_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;
}
se(Tipo==POSIZIONE_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;
}
richiesta.azione = TRADE_ACTION_DEAL;
request.symbol = _Symbol;
request.volume = MathMin(volume,SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX));
richiesta.sl = stoploss;
request.tp = takeprofit;
request.deviation=SymbolInfoInteger(_Symbol,SYMBOL_SPREAD);
request.type_filling=ORDER_FILLING_AON;
request.comment=DoubleToString(Money,2)+"$";
if(!OrderCheck(richiesta,controllo))
{
if(check.margin_level<100) volume=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP);
Print("OrderCheck Code: ",check.retcode);
continuare;
}
if(!OrderSend(request,result)|| result.deal==0)
{
Print("OrderSend Code: ",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;
Dormire(1000);
}
if(!PositionSelect(_Symbol)) return(false);
return(true);
}
//+-----------------------------------+
bool IsNewBar()
{
static datetime Told;
datetime Tnew[1];
CopyTime(_Symbol,PERIOD_CURRENT,0,1,Tnew);
se(Tnew[0]!=Detto)
{
Told=Tnew[0];
return(true);
}
return(false);
}
//+-----------------------------------+

Si prega di avvisare perché la linea request.type_filling=ORDER_FILLING_AON; nell'EA contiene l'errore 'ORDER_FILLING_AON' - identificatore non dichiarato cs2011.mq5 127 28 nella versione 697



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

Si prega di avvisare perché la linea request.type_filling=ORDER_FILLING_AON; nell'EA contiene l'errore 'ORDER_FILLING_AON' - identificatore non dichiarato cs2011.mq5 127 28 nella versione 697

Perché il linguaggio è cambiato da quando l'EA è stato scritto.

mettere request.type_filling=ORDER_FILLING_AON in questa linea;

request.type_filling=ORDER_FILLING_FOK; e sarete felici.

Oppure si può semplicemente mettere 0

request.type_filling=0;

funzionerà anche.

PS o in alternativa (per evitare di dover modificare l'intero EA) si può mettere una patch in cima a tutto

#define ORDER_FILLING_AON ORDER_FILLING_FOK

Questo è solo nel caso in cui ORDER_FILLING_AON sia menzionato più volte.

 
Per qualche motivo vedo la seguente immagine: quando incollo nel terminale un indicatore dal Navigatore a un grafico, ma il grafico mostra un'area vuota per l'indicatore, l'indicatore stesso non viene visualizzato, ma se apro la lista degli indici del grafico, vi appare con la nota "Debugging". Cos'è questo bug e come posso combatterlo?
 
marketeer:
Per qualche motivo vedo la seguente immagine: quando incollo nel terminale un indicatore dal Navigatore a un grafico, ma il grafico mostra un'area vuota per l'indicatore, l'indicatore stesso non viene visualizzato, ma se apro la lista degli indici del grafico, vi appare con la nota "Debugging". Cos'è questo insetto e come posso affrontarlo?
Ricompilare
 

Brava gente, aiuto!

Prendete il codice più semplice.

#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);           // возвращаемое значение

  }

Lo compiliamo sulla build 687 e otteniamo Vhod=0 nel debugger.

Come lo capite? Allo stesso tempo, a volte ho ottenuto Vhod=30. (strano ma vero).

restituisce qualche sciocchezza...

Cosa sono questi glitch o mi manca qualcosa?