Errori, bug, domande - pagina 872

 
Ciao!
Quando installo Meta Trader 5, quale server Proxy devo installare?
 
Vladon:

su mt5 funziona.

Sì, funziona - calcola gli errori dal 01.10.20112 al 06.10.2012 su euro/$
File:
20121111.log  60 kb
 
mario065:
Sì, funziona - calcola gli errori dal 01.10.20112 al 06.10.2012 su Euro/$

cosa intendi?

fallito modifica comprare 0.10 EURUSD sl: 1.29120, tp: 1.29370 -> sl: 1.29120, tp: 1.29370 [Arresti non validi]

JF 0 Core 1 19:48:37 2012.10.03 16:20:27 Modifica errore =4756

Stop Loss e Take Profit non possono essere modificati di per sé, ecco perché si dice stop error, perché è sorprendente.

 
Vladon:

cosa intendi?

fallito modifica comprare 0.10 EURUSD sl: 1.29120, tp: 1.29370 -> sl: 1.29120, tp: 1.29370 [Arresti non validi]

JF 0 Core 1 19:48:37 2012.10.03 16:20:27 Modifica errore =4756

Direi che stoploss e takeprofit non possono essere modificati di per sé, ecco perché dice stop error, perché è sorprendente.

Sì, e ciò che è scritto nel codice:
  if(PositionSelect(Symbol())){
    if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
      {
      if(MStop > 0)
       {
        if(NormalizeDouble(Bid - MStop,4) >= Open)
          if(SL == 0 || NormalizeDouble(Bid - MStop,4) >= SL) 
           {
            ModifyPosition(Symbol(),NormalizeDouble(Bid - MStop,4),TP);
           }
        }
      }
    if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
      {
      if(MStop > 0)
       { 
        if(NormalizeDouble(Ask + MStop,4) <= Open)
          if(SL == 0 || NormalizeDouble(Ask + MStop,4) <=SL) 
           {
            ModifyPosition(Symbol(),NormalizeDouble(Ask + MStop,4),TP);
           }
        }
      }
     } 
  }

cambiare stop dopo 10 pips o no?

Come faccio a calcolare 10 pips come costosi se specifico quando cambiare lo stop?

if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)

se c'è una posizione di acquisto

se(MStop > 0)

Se MStop è superiore a zero

se(NormalizeDouble(Bid - MStop,4) >= Open)

Se il prezzo Bid meno il prezzo MStop è maggiore del prezzo Open double Open = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),4)

che è specificato da 4 cifre.

if(SL == 0 || NormalizeDouble(Bid - MStop,4) >= SL)

Se Stoploop = 0 o prezzo Bid meno punti pip superiore o uguale al livello Stoploop.

Cosa non è chiaro?

Funziona bene su MT4.

Lo uso su MT5, è un glitch.

Su MT5 ho impostato più a causa di StopLevel(SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL)). ancora un problema.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций - Документация по MQL5
 
ma i commenti. cercate voi stessi.
 
mario065:
Sì, e ciò che è scritto nel codice:

Lo stop deve essere cambiato dopo 10 pips?

Quindi come faccio a calcolare 10 pips come costosi se ho specificato quando cambiare lo stop?

if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)

se c'è una posizione di acquisto

se(MStop > 0)

Se MStop è superiore a zero

se(NormalizeDouble(Bid - MStop,4) >= Open)

Se il prezzo Bid meno il prezzo MStop è maggiore del prezzo Open double Open = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),4)

che è specificato da 4 cifre.

if(SL == 0 || NormalizeDouble(Bid - MStop,4) >= SL)

Se Stoploop = 0 o prezzo Bid meno punti pip superiore o uguale al livello Stoploop.

Cosa non è chiaro?

Funziona bene su MT4.

Lo uso su MT5, è un glitch.

Faccio i miei calcoli e funziona bene su MT4, ho impostato più livelli di stop su MT5 (SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL)).


if(NormalizeDouble(Bid - MStop,4) >= Open)
                                  ^^^^^^
                                Что за хрень?

if(SL == 0 || NormalizeDouble(Ask + MStop,4) <=SL) 
  ^^^^^^^^                 ^^^^^^^^^^^^^^
Почему не нормализовано? Нахрена это нормализовать?

 

È semplice, è il livello di stop sbagliato, cioè uno stop inferiore al minimo.

Cosa c'è da non capire?

 
Vladon:

È semplice, è il livello di stop sbagliato, cioè uno stop inferiore al minimo.

Cosa c'è da non capire?

Ha sbagliato tutto, perché ci sono più giunture del necessario.
 
Reshetov:

Ciao Reshetov,

Per voi è "Che diavolo?", per me è la condizione in cui devo fare una chiamata alla funzione di modifica.

Se avessi guardato il codice, non l'avresti scritto.

if(NormalizeDouble(Bid - MStop,4) >= Open)
                                  ^^^^^^
                                Что за хрень?

if(SL == 0 || NormalizeDouble(Ask + MStop,4) <=SL) 
  ^^^^^^^^                 ^^^^^^^^^^^^^^
Почему не нормализовано? Нахрена это нормализовать?

Il codice lo fa:

  double Bid  = NormalizeDouble(SymbolInfoDouble(Symbol(),SYMBOL_BID),4);
  double Ask  = NormalizeDouble(SymbolInfoDouble(Symbol(),SYMBOL_ASK),4);
  double Open = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),4);
  double SL   = NormalizeDouble(PositionGetDouble(POSITION_SL),4);
  double TP   = NormalizeDouble(PositionGetDouble(POSITION_TP),4);

Condizione di traduzione:

input double MStop  = 0.001;
double Open = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),4);
if(NormalizeDouble(Bid - MStop,4) >= Open)

Se il prezzo su Bid-MStop è superiore o uguale al livello di apertura della posizione, allora è possibile chiamare la funzione di modifica - non prima.

Inoltre, questo non è il modo giusto di farlo - è nel codice e dovrebbe essere fatto correttamente:

if(SL == 0 || NormalizeDouble(Bid - MStop,4) >= SL)

La seconda normalizzazione è solo nel caso, penso che non sia male.

La condizione stessa (che avete preso dalla condizione per un Sell Positive):

Se lo stop loss è zero o Bid meno 10 pip più o uguale al livello di stop loss - allora possiamo chiamare la funzione di modifica.

Se il prezzo è più alto e lo stop loss cambia, la prossima chiamata sarà fatta dopo 10 pip, quindi non succede ad ogni tick.

Questo è quello che ho scritto - penso che sia giusto.

Mi aspettavo che tu mi dicessi se è giusto o sbagliato, un mio errore o un bug?

 
mario065:

Ciao Reshetov,

Per voi è "Che cazzo?", per me è la condizione in cui devo fare una chiamata di funzione di modifica.

...
Penso che Reshetov intendesse dire che non è necessario normalizzare la variabile per if. Dovremmo normalizzare il valore del prezzo quando l'ordine viene inviato al server. Invece di NormalizeDouble(Bid - MStop,4) fai NormalizeDouble( (Bid- MStop),4).