Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 962

 
Artyom Trishkin:

Il compilatore non impreca, ma avverte che si sta cercando di mettere double in int.


Una grande immagine sull'argomento - è divertente, grazie.

 
Alexey Viktorov:

Prova anche DRAW_COLOR_CANDLES

Grazie, farò una prova.
 
Alexey Viktorov:

Prova anche DRAW_COLOR_CANDLES

DRAW_COLOR_CANDLES non cambia la larghezza, sebbene sia presente nella documentazione dell'esempio (#property indicator_width1 1). Quindi sovrapporre una candela all'altra non funzionerà.

 
Nauris Zukas:

DRAW_COLOR_CANDLES non cambia la larghezza, sebbene sia presente nella documentazione dell'esempio (#property indicator_width1 1). Pertanto, sovrapporre una candela all'altra non funzionerà.

Potete calcolare la larghezza delle barre in pixel e usare questo valore per determinare lo spessore degli istogrammi. Tutto sommato, se volete...

 
Alexey Viktorov:

Potete calcolare la larghezza delle barre in pixel e usare questo valore per determinare lo spessore degli istogrammi. Tutto sommato, se volete...

"...la larghezza delle barre in pixel..." Non capisco bene come fare.

 
Nauris Zukas:

"...calcola la larghezza delle barre in pixel..." Non capisco bene come farlo.

In ogni caso, se vuoi, devi controllare ciò che ottieni. Non l'ho testato, per mancanza di un motivo...

Scala

Modo di specificare la scala in pixel per barra


Larghezza del grafico in pixel /Larghezza del grafico in barre Questo potrebbe non funzionare quando è impostato il rientro dal bordo destro del grafico.

 
Alexey Viktorov:

In ogni caso, se vuoi, devi controllare ciò che ottieni. Non l'ho testato, per mancanza di un motivo...

Scala

Modalità di scala in pip per barra


Larghezza del grafico in pixel /Larghezza del grafico in barre Questo potrebbe non funzionare quando è impostato per rientrare il bordo destro del grafico.

Grazie.

 
Aiutatemi, gente di buona volontà...
Ho incontrato un tale casino nel tester.
Quando si cerca di mettere un filtro per entrare nel mercato per livello di spread. Tester lo ignora (spread).
Ma lo ignora solo dagli ultimi 6 mesi. 5 (ultimi) mesi prova normalmente, filtri.
Ho letto da qualche parte che gli account dei tester si diffondono a modo loro e rendono impossibile il filtraggio,
Ma ciò che confonde è che negli ultimi 5 mesi lo prende ancora in considerazione e lo gestisce in modo amichevole...
Schermata allegata.
La domanda è questa.
È una caratteristica del tester o ha delle impostazioni che non conosco?
O forse questa condizione deve essere impostata come software?

Ho scritto il filtro per i test in questo modo...

void OnTick()
  { 
  double ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK); 
  double bid=SymbolInfoDouble(Symbol(),SYMBOL_BID);
  double spread=ask-bid; 
  
  if (PositionsTotal()>=1) 
  return;
  {
  int spread_points=(int)MathRound(spread/SymbolInfoDouble(Symbol(),SYMBOL_POINT)); 
  if (spread_points<=5)
  {
  trade.Buy(0.1,_Symbol,ask,bid-300*_Point,bid+300*_Point);
  }
  }
  }

Beh... è così che l'ho scritto).

File:
 
vladzeit:
Aiutatemi, gente di buona volontà...
Ho incontrato un tale casino nel tester.
Quando si cerca di mettere un filtro per entrare nel mercato per livello di spread. Tester lo ignora (spread).
Ma lo ignora solo dagli ultimi 6 mesi. Per 5 mesi il tester prova normalmente, filtra.
Ho letto da qualche parte che il tester ha un suo modo di calcolare lo spread e rende impossibile filtrarlo,
Ma ciò che confonde è che per 5 mesi lo prende ancora in considerazione e lo gestisce in modo amichevole...
Schermata allegata.
La domanda è questa.
È una caratteristica del tester o ha delle impostazioni che non conosco?
O forse questa condizione deve essere impostata come software?

Ho scritto il filtro per i test in questo modo...

Beh... è così che l'ho scritto)

Dovresti testarlo in modalità"Ogni tick basato su tick reali":

//+------------------------------------------------------------------+
//| "Tick" event handler function                                    |
//+------------------------------------------------------------------+
void OnTick()
  {
   double ask  = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
   double bid  = SymbolInfoDouble(Symbol(),SYMBOL_BID);
   long spread = SymbolInfoInteger(Symbol(),SYMBOL_SPREAD);

   if(ask==0.0 || bid==0.0 || spread=0)
      return;

   if(PositionsTotal()>0)
      return;

   if(spread_points<=InpSpread)
     {
      trade.Buy(0.1,Symbol(),ask,ask-300*Point(),ask+300*Point());
     }
  }

InpSpread - parametro lungo di input.

 
Vladimir Karputov:

Test in modalità"Ogni tick basato su tick reali":

InpSpread - parametro lungo di input.

Grazie Vladimir, ho impostato l'ingresso lungo.

input long  InpSpread =5;
spread=0 //поправил, на == это ведь сравнение?
if(spread_points<=InpSpread) // поправил на spread

Tutto funziona, ma filtra ancora lo spread solo per 5 mesi. Rispetto"Ogni tick basato su tick reali".

Forse è a causa diMetaQuotes, ora ne proverò altri.