[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 738

 

Ho capito, grazie per il tuo aiuto.

 
spidey:

Buona sera, potreste consigliarmi come mettere un allarme nell'indicatore, ho provato di tutto, suona ad ogni tick, o non suona affatto...


Prendilo e firmalo :)

File:
 
Si prega di consigliare come confrontare il prezzo di chiusura della barra i-esima (per esempio М15) con il prezzo di apertura del giorno nell'indicatore
 

Salve.

Potete dirmi o consigliarmi dove ottenere il .hst o cosa generare le onde di Eliot per il tester visivo, (può essere in file csv) come nell'immagine qui sotto:

 
RomanS:
Per favore, ditemi come confrontare il prezzo di chiusura della i-bar nell'indicatore (per esempio М15) con il prezzo aperto del giorno


Non devo essermi spiegato bene... per esempio

#property indicator_separate_window
#property  indicator_buffers 4
#property  indicator_color1  Red
#property  indicator_color2  Green
#property  indicator_color3  Blue
#property  indicator_color4  Black

extern int DAY       = 0;
extern int History   = 500;

double GBP[],EUR[],JPY[],USD[]; 

int init()
  {
   SetIndexBuffer(0, GBP);
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
   SetIndexBuffer(1, EUR);    
   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);
   SetIndexBuffer(2, JPY);
   SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,2);
   SetIndexBuffer(3, USD);
   SetIndexStyle(3,DRAW_LINE,STYLE_SOLID,2);
   IndicatorShortName("...");
   return;
  }

int start()
  {
  int limit = 0, 
      counted_bars = IndicatorCounted();
      if(counted_bars>0) counted_bars--; 
      limit = Bars - counted_bars;
 
  for(int i=0; i<limit; i++)
    {
     USD[i] = -(iClose("EURUSD",NULL,i)-iOpen("EURUSD",PERIOD_D1,DAY))
              -(iClose("GBPUSD",NULL,i)-iOpen("GBPUSD",PERIOD_D1,DAY))
              +(iClose("USDJPY",NULL,i)-iOpen("USDJPY",PERIOD_D1,DAY))/iClose("USDJPY",NULL,i);
     EUR[i] = +(iClose("EURUSD",NULL,i)-iOpen("EURUSD",PERIOD_D1,DAY))
              +(iClose("EURUSD",NULL,i)*iClose("USDJPY",NULL,i)-iOpen("EURUSD",PERIOD_D1,DAY)*iOpen("USDJPY",PERIOD_D1,DAY))/iClose("USDJPY",NULL,i)
              +(iClose("EURUSD",NULL,i)/iClose("GBPUSD",NULL,i)-iOpen("EURUSD",PERIOD_D1,DAY)/iOpen("GBPUSD",PERIOD_D1,DAY))*iClose("GBPUSD",NULL,i);
     GBP[i] = +(iClose("GBPUSD",NULL,i)-iOpen("GBPUSD",PERIOD_D1,DAY))
              +(iClose("GBPUSD",NULL,i)*iClose("USDJPY",NULL,i)-iOpen("GBPUSD",PERIOD_D1,DAY)*iOpen("USDJPY",PERIOD_D1,DAY))/iClose("USDJPY",NULL,i)
              -(iClose("EURUSD",NULL,i)/iClose("GBPUSD",NULL,i)-iOpen("EURUSD",PERIOD_D1,DAY)/iOpen("GBPUSD",PERIOD_D1,DAY))*iClose("GBPUSD",NULL,i);
     JPY[i] = -(iClose("USDJPY",NULL,i)-iOpen("USDJPY",PERIOD_D1,DAY))/iClose("USDJPY",NULL,i)
              -(iClose("EURUSD",NULL,i)*iClose("USDJPY",NULL,i)-iOpen("EURUSD",PERIOD_D1,DAY)*iOpen("USDJPY",PERIOD_D1,DAY))/iClose("USDJPY",NULL,i)
              -(iClose("GBPUSD",NULL,i)*iClose("USDJPY",NULL,i)-iOpen("GBPUSD",PERIOD_D1,DAY)*iOpen("USDJPY",PERIOD_D1,DAY))/iClose("USDJPY",NULL,i);
    }
   return(0);
  }

Se imposto DAY = 0, allora il prezzo della barra i-esima, che sia M5, sarà comparato al prezzo aperto di oggi, se DAY = 1, allora al prezzo aperto di ieri, ecc.

come renderlo dinamico... Se volessi confrontarlo dinamicamente, cioè quando copio per esempio la 1278esima barra, verrebbe confrontato con il prezzo aperto del giorno quando vedo questa barra.

 

Supponendo che questo sia un grafico di qualche indicatore MAKD o STOH tutti uguali, consigliare come descrivere il punto di entrata nell'EA Xmax*0.25 per vendere e Xmin*0.25 per comprare. Se il periodo "n" non è costante e Xmax e Xmin cambiano.

File:
ypi.rar  7 kb
 

come implementare un tale operatore

while ( Условие если закрылся любой ордер )                  
{   то опредеяем тип закрытого ордера из списка   }  
значение передаем следущему оператору

{  по переданому значению выбераем из списка нужный ордер и открываем его  } 
после того как ордер открыт возращяемся в начало

o in quale altro modo questo ciclo può essere implementato

 
RomanS:


Devo essermi spiegato male... per esempio

Se imposto DAY = 0, allora il prezzo della barra i-esima sarà paragonato al prezzo aperto di oggi, se DAY = 1, allora a ieri, ecc.

come farlo dinamicamente... Cioè quando si calcola la 1278esima barra per esempio, è stata confrontata con il prezzo aperto del giorno in cui questa barra è stata aperta.

Per questo, ho una funzione che restituisce OHLC di qualsiasi periodo senior :)

//+------------------------------------------------------------------+
//| getOHLC                                                          |
//+------------------------------------------------------------------+
double getOHLC(int OHLC, string symbol, int timeframe, int shift = 0){
   if(timeframe < Period())return(-1);
   switch(OHLC){
      case 0:  return(iOpen(symbol, timeframe, iBarShift(symbol, timeframe, Time[shift])));
      case 1:  return(iLow(symbol, timeframe, iBarShift(symbol, timeframe, Time[shift])));
      case 2:  return(iHigh(symbol, timeframe, iBarShift(symbol, timeframe, Time[shift])));
      case 3:  return(iClose(symbol, timeframe, iBarShift(symbol, timeframe, Time[shift])));
   }
}
//+------------------------------------------------------------------+

Parametri:
int OHLC - quali dati dovrebbero essere presi dal timeframe alto, corrispondono alle costanti standard.
string symbol - nome simbolico dello strumento.
int timeframe - periodo del timeframe superiore per lavorare, corrisponde alle costanti standard.
int shif t - parametro opzionale, che specifica il numero della barra corrente, del timeframe corrente, per cercare corrispondenze di periodi più vecchi.

Esempio di chiamata di funzione per il vostro caso:

for(int i=0; i<limit; i++)
    {
     USD[i] = -(iClose("EURUSD",NULL,i)-getOHLC(0, "EURUSD",PERIOD_D1,i))
              -(iClose("GBPUSD",NULL,i)-getOHLC(0, "GBPUSD",PERIOD_D1,i))
              +(iClose("USDJPY",NULL,i)-getOHLC(0, "USDJPY",PERIOD_D1,i))/iClose("USDJPY",NULL,i);
     EUR[i] = +(iClose("EURUSD",NULL,i)-getOHLC(0, "EURUSD",PERIOD_D1,i))
              +(iClose("EURUSD",NULL,i)*iClose("USDJPY",NULL,i)-getOHLC(0, "EURUSD",PERIOD_D1,i)*getOHLC(0, "USDJPY",PERIOD_D1,i))/iClose("USDJPY",NULL,i)
              +(iClose("EURUSD",NULL,i)/iClose("GBPUSD",NULL,i)-getOHLC(0, "EURUSD",PERIOD_D1,i)/getOHLC(0, "GBPUSD",PERIOD_D1,i))*iClose("GBPUSD",NULL,i);
     GBP[i] = +(iClose("GBPUSD",NULL,i)-getOHLC(0, "GBPUSD",PERIOD_D1,i))
              +(iClose("GBPUSD",NULL,i)*iClose("USDJPY",NULL,i)-getOHLC(0, "GBPUSD",PERIOD_D1,i)*getOHLC(0, "USDJPY",PERIOD_D1,i))/iClose("USDJPY",NULL,i)
              -(iClose("EURUSD",NULL,i)/iClose("GBPUSD",NULL,i)-getOHLC(0, "EURUSD",PERIOD_D1,i)/getOHLC(0, "GBPUSD",PERIOD_D1,i))*iClose("GBPUSD",NULL,i);
     JPY[i] = -(iClose("USDJPY",NULL,i)-getOHLC(0, "USDJPY",PERIOD_D1,i))/iClose("USDJPY",NULL,i)
              -(iClose("EURUSD",NULL,i)*iClose("USDJPY",NULL,i)-getOHLC(0, "EURUSD",PERIOD_D1,i)*getOHLC(0, "USDJPY",PERIOD_D1,i))/iClose("USDJPY",NULL,i)
              -(iClose("GBPUSD",NULL,i)*iClose("USDJPY",NULL,i)-getOHLC(0, "GBPUSD",PERIOD_D1,i)*getOHLC(0, "USDJPY",PERIOD_D1,i))/iClose("USDJPY",NULL,i);
    }

Di conseguenza iClose("EURUSD",NULL,i) troverà il prezzo di chiusura della barra numero i del grafico attuale, e getOHLC(0, "EURUSD",PERIOD_D1,i) il prezzo di apertura del giorno in cui si trova la barra i del grafico attuale.

 
RomanS:


Devo essermi spiegato male... per esempio

Se imposto DAY = 0, allora il prezzo della barra i-esima, che sia M5, sarà comparato al prezzo aperto di oggi, se DAY = 1, allora al prezzo aperto di ieri, ecc.

come farlo dinamicamente... Cioè quando si calcola la 1278esima barra per esempio, è stata confrontata con il prezzo aperto del giorno in cui questa barra è stata aperta.

Dovete prima calcolare a quale giorno corrisponde questa barra. Non sono a casa in questo momento, quindi vi darò la funzione più tardi quando torno a casa la sera. Nel frattempo, cercatevelo da soli o cercate di capire come implementarlo.

Ops... Già offerto una variante....

 
akuma_san1:

Supponendo che questo sia un grafico di qualche indicatore MAKD o STOH tutti uguali, consigliare come descrivere il punto di entrata nell'EA Xmax*0.25 per vendere e Xmin*0.25 per comprare. Se il periodo "n" non è costante e Xmax e Xmin cambiano.

I vostri criteri di ingresso sono definiti in modo molto vago. Per me personalmente non è chiaro. Se avete bisogno di controllare l'attraversamento di qualsiasi livello, allora cambiando tutti i parametri che avete fornito non hanno fattori di interferenza. Basta guardare il valore del parametro richiesto sulla prima barra e il valore dello stesso parametro sulla seconda barra. Se il valore del parametro sulla prima barra è superiore a un valore di soglia che avete specificato e il valore sulla seconda barra è inferiore, abbiamo un crossover dal basso verso l'alto. Se il valore della prima barra è più basso e la seconda barra è più alta - abbiamo un incrocio da su a giù. Qui abbiamo due segnali per comprare e vendere. Si può controllare solo il valore sopra o sotto - così avremo lo stesso segnale, ma per tutto il tempo il parametro è sopra o sotto il valore monitorato.
SZY. Se i parametri non cambiassero, non avremmo mai un segnale... :)