Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 257

 
Ciao di nuovo! Aiutatevi con questa banalità per voi, perché non riesco a capirlo....

Voglio fare quanto segue!

Quando ho aperto il primo trade al prezzo per esempio 1.23455, voglio che il secondo trade sia aperto quando il prezzo andrà a 1.23415

Codice PHP:
double positionTPask=NormalizeDouble(Ask*Point,Digits);
double lastTPask1=NormalizeDouble(Ask-40*Point,Digits);

if (
RSI0<RSIDownLevel&&RSIDownLevel<=RSI1){
TP=NormalizeDouble(Ask+takeprofit*Point,Digits);
if (
OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,0,TP,NULL,Magic)==-1)Print(GetLastError());

if (
positionTPask1>lastTPask1){
if (
takeprofit!=0)TPm=NormalizeDouble(Ask+takeprofit*Point,Digits);
if (
OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,0,TPm,NULL,Magic)==-1) Print(GetLastError());
}}

E ho 2 ordini aperti contemporaneamente ad un prezzo...
È corretto? Controlla...
 

sviter-pro:
Здраствуйте еще раз! Помогите с этой банальностью для вас, ато я разобраться не могу....

Хочу сделать следующее! 

Когда открывается первая сделка по цене к примеру 1.23455, то хочу что бы вторая сделка открывалась когда цена пойдет на 1.23415

double positionTPask = NormalizeDouble(Ask * Point, Digits);
double lastTPask1 = NormalizeDouble(Ask - 40 * Point, Digits);

if (RSI0 < RSIDownLevel && RSIDownLevel <= RSI1){
      TP  = NormalizeDouble(Ask + takeprofit * Point,Digits); 
      if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,0,TP,NULL,Magic)==-1) Print(GetLastError());
      
   if (positionTPask1 > lastTPask1){
      if (takeprofit!=0) TPm  = NormalizeDouble(Ask + takeprofit * Point, Digits); 
      if (OrderSend(Symbol(), OP_BUY, Lot, NormalizeDouble(Ask, Digits), slippage, 0, TPm, NULL, Magic)==-1) Print(GetLastError());
      }}  
E ho 2 ordini aperti contemporaneamente allo stesso prezzo...

E' fatto bene? Guardate questo...

Nella prima riga ho visto una cosa strana. Non ho cercato oltre.

A cosa serve questo?

double positionTPask = NormalizeDouble(Ask * Point, Digits);

Su una calcolatrice, moltiplicare Ask per Point

Ho un'idea molto buona di come incollare correttamente il codice.

 
sviter-pro:
Ciao di nuovo! Aiutatevi con questa banalità per voi, perché non riesco a capirlo....

Voglio fare quanto segue!

Quando il mio primo ordine si apre a 1,23455, voglio che il mio secondo ordine si apra quando il prezzo andrà a 1,23415

Codice PHP:
double positionTPask=NormalizeDouble(Ask*Point,Digits);
double lastTPask1=NormalizeDouble(Ask-40*Point,Digits);

if (
RSI0<RSIDownLevel&&RSIDownLevel<=RSI1){
TP=NormalizeDouble(Ask+takeprofit*Point,Digits);
if (
OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,0,TP,NULL,Magic)==-1)Print(GetLastError());

if (
positionTPask1>lastTPask1){
if (
takeprofit!=0)TPm=NormalizeDouble(Ask+takeprofit*Point,Digits);
if (
OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,0,TPm,NULL,Magic)==-1) Print(GetLastError());
}}

Ho aperto 2 ordini ad un prezzo ...
È corretto? Si prega di controllare...
Non si dovrebbe ballare da Ask-40*Point, ma dal prezzo all'apertura di 1 posizione-40*Point.
 

Non ho lavorato molto con gli indicatori, quindi questa potrebbe essere una domanda semplice, come faccio a disabilitare la visualizzazione del buffer grafico nella"finestra dei dati"? Voglio rimuovere il buffer 3 e 4, ecco il codice:

#property strict
#property indicator_chart_window
#property indicator_buffers 4
#property  indicator_color1 Black
#property  indicator_color2 Yellow
#property  indicator_color3 Black
#property  indicator_color4 Black

//---- input parameters
input int RSIPeriod=14;
input int Levl=50;
input ENUM_TIMEFRAMES TF=PERIOD_CURRENT;
//---- buffers
double RSIBuffer[];
double MABuffer[];
double PosBuffer[];
double NegBuffer[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- 2 additional buffers are used for counting.
   IndicatorBuffers(4);
   SetIndexBuffer(0,RSIBuffer);
   SetIndexBuffer(1,MABuffer);
   SetIndexBuffer(2,PosBuffer);
   SetIndexBuffer(3,NegBuffer);
   
//---- indicator line
   SetIndexStyle(0,DRAW_NONE);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexStyle(2,DRAW_NONE);
   SetIndexStyle(3,DRAW_NONE);
//----
//---- name for DataWindow and indicator subwindow label
   short_name="RSI("+IntegerToString(RSIPeriod,0,' ')+")";
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);
   SetIndexLabel(1,"Levl"+"_"+IntegerToString(Levl,0,' ')+" Price");
   SetIndexLabel(2,"U");
   SetIndexLabel(3,"D");
   

   return(0);
  }

Questo è RSI modificato - i buffer sono necessari lì, perché il calcolo è basato su dati passati e non voglio cambiare la dimensione del buffer ogni volta (se non è grafico) e aggiungere nuovi dati lì, quindi i buffer grafici sono convenienti per i miei scopi.

 
Alekseu Fedotov:
Non si dovrebbe ballare da Ask-40*Point, ma dal prezzo di apertura1posizione-40*Point.

Quindi leggere il prezzo di apertura e ballare....

 
Aleksey Vyazmikin:

Non ho lavorato molto con gli indicatori, quindi questa potrebbe essere una domanda semplice, come faccio a disabilitare la visualizzazione del buffer grafico nella"Data window"? Voglio rimuovere il buffer 3 e 4, ecco il codice:

Questo è un RSI modificato - i buffer sono necessari lì, perché il calcolo è basato su dati passati e non voglio cambiare la dimensione del buffer ogni volta (se non è grafico) e aggiungere nuovi dati lì, quindi i buffer grafici sono convenienti per i miei scopi.


Non so se ho capito bene.

Prova così:#property indicator_buffers 2

#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property  indicator_color1 Black
#property  indicator_color2 Yellow
 
Alexander Voronkov:

Non so se ho capito bene.

Prova così:#property indicator_buffers 2


Sembra che tu abbia ragione! E per bontà di cuore, ho pensato che doveva essere dichiarato se un buffer grafico veniva usato per i calcoli.

Grazie!
 
Aleksey Vyazmikin: come disabilitare la visualizzazione del buffer grafico nellafinestra dei dati? Voglio rimuovere il buffer 3 e 4, ecco il codice:

per disabilitare la visualizzazione nella finestra Dati, fare come segue

SetIndexLabel(2,NULL);  // Запрет в окно Данные буфера 3
SetIndexLabel(3,NULL);  // Запрет в окно Данные буфера 4
 
STARIJ:

Per disabilitare l'output nella finestra dei dati, fate come segue


Grazie. Questa mossa permetterà di vedere i buffer vietati nei dati della finestra attraverso iCustom?

 
Aleksey Vyazmikin: Grazie. Questa mossa vi permetterà di vedere i buffer che non possono essere emessi nella finestra dei dati tramite iCustom?

iCustom vi permette di vedere solo ciò che è nella finestra dei dati. Il penultimo parametro della funzione è esattamente il numero del buffer visibile nella finestra dei dati

Просмотр и настройка графиков - Графики котировок, технический и фундаментальный анализ - Справка по MetaTrader 5
Просмотр и настройка графиков - Графики котировок, технический и фундаментальный анализ - Справка по MetaTrader 5
  • www.metatrader5.com
Графики в торговой платформе отображают изменение котировок финансовых инструментов во времени. Они необходимы для проведения технического анализа...