Domande dai principianti MQL4 MT4 MetaTrader 4 - pagina 171

 

EA basato sull'intervallo percentuale di Williams. Il codice si compila senza problemi ma l'EA non fa trading, molto probabilmente i parametri per wpr non sono corretti. I guru sperano nel vostro aiuto

//+------------------------------------------------------------------+
//|                                                          WRP.mq4 |
//|                                                                  |
//+------------------------------------------------------------------+

//--------------------------------------------------------------------
extern int     period_WPRur          = 6,
               stoploss             = 100,
               takeprofit           = 200,
               slippage             = 10,
               buy_level            = -80,
               sell_level           = -20,
               Magic                = 21;
extern double  Lot                  = 0.1;
//--------------------------------------------------------------------
void OnTick()
{
   for (int i=0; i<OrdersTotal(); i++)
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber()) return;
   double WPRur0  = iWPR(Symbol(),period_WPRur,PRICE_OPEN,1);
   double WPRur1  = iWPR(Symbol(),period_WPRur,PRICE_OPEN,1);
   double SL=0,TP=0;
   if (WPRur0 > buy_level && WPRur1 < buy_level)
   {
      if (takeprofit!=0) TP  = NormalizeDouble(Ask + takeprofit*Point,Digits);
      if (stoploss!=0)   SL  = NormalizeDouble(Ask - stoploss*  Point,Digits);     
      if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
   }
   if (WPRur0 < sell_level && WPRur1 > sell_level)
   {
      if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits);
      if (stoploss!=0)   SL = NormalizeDouble(Bid + stoploss*  Point,Digits);            
      if (OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
   }
}
//--------------------------------------------------------------------
 
Saluti a tutti, sono un novellino, consigliatemi cosa fare, devorestituirel'importo di300.26$ (conto reale)o no, voglio smettere di usare ECN Pool MT4 per un po'?
File:
354355.png  5 kb
 
Logic:
Saluti a tutti, sono un principiante, ditemi cosa fare, devorimborsare l'importo di300.26$ (conto reale)o no, voglio smettere di usare ECN Pool MT4 per un po'?

Leggi il contratto d'uso del tuo broker.
Dovresti leggere il contratto del tuo broker e di solito dice che se il conto va in rosso, il cliente non ti deve nulla.
Ecco a cosa servono il margin call e lo stop out.

 
Aleksandr SHablevskiy:

EA basato sull'intervallo percentuale di Williams. Il codice si compila senza problemi ma l'EA non fa trading, molto probabilmente i parametri per wpr non sono corretti. I guru sperano nel vostro aiuto

  double WPRur0  = iWPR(Symbol(),period_WPRur,PRICE_OPEN,1);
  double WPRur1  = iWPR(Symbol(),period_WPRur,PRICE_OPEN,2);
Metti 2 alla fine della seconda riga come ho fatto io.
 
Nikolay Khrushchev:

Leggi il contratto d'uso del tuo broker.
Di solito dichiarano che se il conto va in deficit, il cliente non deve nulla.
Ecco a cosa servono il margin call e lo stop out.

il fatto è che il broker si è rivelato essere un truffatore, né il sito web né la comunicazione sono disponibili con lui
 
Nikolay Khrushchev:
mettere 2 alla fine della seconda riga come ho fatto io.
sembra qualcos'altro, nessun accordo!!!
 
Ciao a tutti, ho appena iniziato a imparare la programmazione di mql4, sto guardando un video corso su youtube, ma a quanto pare il materiale è vecchio, ho incontrato un errore quando cerco di creare un programma, aiutatemi.Ecco l'errore: l'autore del video non risponde.
 
Ciao a tutti,per favore aiutatemi,come scrivere una funzione che faccia girare il robot in perdita. Per esempio, ho perso 20 pips e ho girato, poi ho girato di nuovo.
 
turser89:
Ciao a tutti! ho appena iniziato a imparare la programmazione mql4, sto guardando il video corso su youtube, ma si scopre che il materiale è vecchio, ho incontrato un errore la prima volta che ho cercato di creare un programma, si prega di aiutare.

Start() iniziava con una "s" minuscola invece di una maiuscola.

Ma ora è meglio non usare funzioni obsolete.

OnTick() per gli esperti, OnStart() per gli script, ecc. Per saperne di più: https://docs.mql4.com/ru/mql4changes

 

Buon pomeriggio.

1       16:15:33.627    2019.02.04 16:00:00  CandleStrategy EURUSD,M30: out of memory
3       16:15:33.627    2019.02.04 16:00:00  Testing pass stopped due to a critical error in the EA

Come posso diagnosticare cosa sta causando l'errore "out of memory"? Non ho più nessun oggetto non cancellato. Avvio il test, lo fermo e non ci sono errori di oggetti non cancellati nei log. Anche nessun errore sugli oggetti non cancellati con questo errore di memoria esaurita.

Come posso scoprire cosa porta esattamente a questo errore di memoria?

Motivazione: