Come codificare? - pagina 320

 

Ciao a tutti, vorrei verificare se c'è un modo per tracciare il prezzo corrente?

Ad esempio, quando il prezzo attraversa un punto prestabilito, si attiva immediatamente un trade. Quelli che ho trovato online si riferiscono principalmente alla chiusura, massimo, minimo ecc. della barra. Qualcuno può per favore aiutarmi. Grazie.

Saluti

Terrance

 

Se ho capito bene, dovresti usare Ask e Bid. Ask per un nuovo ordine di acquisto e bid per un nuovo ordine di vendita

tkuan77:
Ciao a tutti, vorrei verificare se c'è un modo per tracciare il prezzo corrente?

Ad esempio, quando il prezzo attraversa un punto prestabilito, si attiverà immediatamente un trade. Quelli che ho trovato online si riferiscono principalmente alla chiusura, alto, basso ecc. della barra. Qualcuno può per favore aiutarmi. Grazie.

Saluti

Terrance
 

Sì Mladen, è quello che sto usando ora. Forse la mia domanda non è spiegata chiaramente. Quello che sto cercando di ottenere è, ad esempio, di preimpostare un punto, ad esempio la chiusura della candela D1 precedente più e meno 20pips, e se il prezzo attuale colpisce il punto preimpostato di (D1 + 20pips) o (D1 - 20pips), si attiverà un acquisto o una vendita indipendentemente dal fatto che la candela corrente è vicino o ora.

Quindi quello che sto cercando di ottenere ora è come fare in modo che il mio sistema inneschi il commercio quando il prezzo colpisce il punto così chiamato (D1 + 20pips) o (D1 - 20pips). Grazie in anticipo per i consigli.

Saluti

Terrance

mladen:
Se ho capito bene, dovresti usare Askand Bid. Ask per un nuovo ordine di acquisto e bid per un nuovo ordine di vendita
 

Ora non sono davvero sicuro di aver capito ma, farò un tentativo. Tipo qualcosa come questo (questo non è un codice reale ma solo un esempio di come controllare - nella maggior parte dei casi la chiusura e l'offerta sono le stesse)

if (close[1](D1+20pips)) trigger up action

if (close[1]>(D1-20pips) && close[0]<(D1-20pips)) trigger down action

tkuan77:
Sì Mladen, questo è quello che sto usando ora. Forse la mia domanda non è chiaramente spiegata. Quello che sto cercando di ottenere è dire esempio, ho preimpostato un punto, esempio precedente candela D1 chiudere più e meno 20pips, e se il prezzo corrente ha colpito il punto preimpostato di (D1 + 20pips) o (D1 - 20pips), si attiverà sia un acquisto o vendere indipendentemente dal fatto che la candela corrente è vicino o ora.

Quindi quello che sto cercando di ottenere ora è come fare in modo che il mio sistema inneschi il commercio quando il prezzo colpisce la chiamata così (D1 + 20pips) o (D1 - 20pips). Grazie in anticipo per i consigli.

Saluti

Terrance
 

Ciao Mladen,

Sì, sono riuscito a risolvere un bel po' di errori che ho incontrato, tuttavia 1 mi dà ancora fastidio. Come faccio ad innescare:

1) trade lungo quando FastMA1 incrocia SlowMA1 di 10pips verso l'alto

2) Trading corto quando FastMA1 incrocia SlowMA1 di 10pips verso il basso

La cosa che non so è come aggiungere la MA per reagire ai 10pips nel codice.

/*--------------------------------------------------------------------------------*/

FastMA1 = iMA(NULL,PERIOD_M30,10,0,MODE_SMA,PRICE_CLOSE,0);

SlowMA1= iMA(NULL,PERIOD_M30,20,0,MODE_SMA,PRICE_CLOSE,1);

se(FastMA1 > SlowMA1)

{Long}

se(FastMA1 < SlowMA1)

{Corto}

/*--------------------------------------------------------------------------------*/

Grazie e grazie per l'aiuto.

Saluti

Terrance

mladen:
Ora non sono davvero sicuro di aver capito ma, farò un tentativo. Tipo qualcosa come questo (questo non è un codice reale ma solo un esempio di come controllare - nella maggior parte dei casi chiudere e offrire sono la stessa cosa)
if (close[1](D1+20pips)) trigger up action

if (close[1]>(D1-20pips) && close[0]<(D1-20pips)) trigger down action

 

Provate qualcosa del genere:

double pipMultiplier=1; if (Digits==3 || Digits==5) pipMultiplier=10;

doppio diff = 10*Punto*pipMultiplier;

se(FastMA1 > SlowMA1+diff)

{Lungo}

se(FastMA1 < SlowMA1-diff)

{Corto}

tkuan77:
Ciao Mladen,

Sì, sono riuscito a risolvere un bel po' di errori che ho incontrato, ma 1 mi dà ancora fastidio. Come faccio ad innescare:

1) trade long quando FastMA1 incrocia SlowMA1 di 10pips verso l'alto

2) Trading corto quando FastMA1 incrocia SlowMA1 di 10pips verso il basso

La cosa che non so è come aggiungere la MA per reagire ai 10pips nel codice.

/*--------------------------------------------------------------------------------*/

FastMA1 = iMA(NULL,PERIOD_M30,10,0,MODE_SMA,PRICE_CLOSE,0);

SlowMA1= iMA(NULL,PERIOD_M30,20,0,MODE_SMA,PRICE_CLOSE,1);

se(FastMA1 > SlowMA1)

{Long}

se(FastMA1 < SlowMA1)

{Corto}

/*--------------------------------------------------------------------------------*/

Grazie e grazie per l'aiuto.

Saluti

Terrance
 

Malden ho provato a codificare l'indicatore come la tua risposta per quanto riguarda la candela h1 giorno precedente. Ma non ho potuto farlo.

Ho un esempio.

Ho un indicatore con un solo buffer in finestre separate. Disegna una linea come rsi, atr etc etc.

Ora ho bisogno di aggiungere una linea (orizzontale) nelle stesse finestre separate che è calcolata dalla media del valore dell'indicatore degli ultimi 24 giorni (è solo per 1 ora per questo motivo ho detto 24). Come posso farlo? È possibile disegnare questa linea per ogni giorno del passato?

So che devo aggiungere un altro buffer.

Come posso dare a questo buffer ciò di cui ho bisogno?

Grazie, grazie

 

...

dasio

Quello che stai descrivendo sembra una combinazione di un indicatore regolare (l'rsi, l'atr, ...) e una media multi time frame di quello stesso indicatore. Hai provato in questo modo?

dasio:
Malden ho provato a codificare l'indicatore come la tua risposta riguardo al giorno precedente della candela h1. Ma non ci sono riuscito.

Ho un esempio.

Ho un indicatore con un solo buffer in finestre separate. Disegna una linea come rsi, atr etc etc.

Ora ho bisogno di aggiungere una linea (orizzontale) nelle stesse finestre separate che è calcolata dalla media del valore dell'indicatore degli ultimi 24 giorni (è solo per 1 ora per questo motivo ho detto 24). Come posso farlo? È possibile disegnare questa linea per ogni giorno del passato?

So che devo aggiungere un altro buffer.

Come posso dare a questo buffer ciò di cui ho bisogno?

Grazie, grazie
 
mladen:
dasio Quello che stai descrivendo sembra una combinazione di un indicatore regolare (l'rsi, atr, ...) e una media multi time frame di quello stesso indicatore. Hai provato in questo modo?

Ciao, grazie per la tua risposta,

Forse non mi sono spiegato bene.

Ho creato un indicatore che disegna una linea in una finestra separata del grafico con il mio calcolo basato sulle barre precedenti.

Ora ho bisogno di aggiungere una linea nell'indicatore dove il valore di questa linea è uguale all'evarage dell'ultimo valore 24 calcolato nell'ultimo giorno e ho bisogno di disegnare questa linea nel giorno precedente. Ho allegato un'immagine. Tuttavia questa linea deve essere calcolata alla fine del giorno perché deve essere calcolata per il valore di la 24 dell'indicatore per lo stesso giorno in cui la calcolo.

Per il momento questo indicatore deve essere utilizzato solo in timeframe 1 ora quindi non è un indicatore MTF.

Grazie.

ps. Le linee bianche sono calcolate per lo stesso valore 24 del periodo di 1 giorno dove sono stampate.

File:
example_1.gif  7 kb
 

...

dasio

Prova qualcosa come questo:

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 OrangeRed

#property indicator_color2 Silver

#property indicator_width1 2

extern int RsiPeriod = 50;

extern int RsiPrice = PRICE_CLOSE;

double work[];

double avg[];

//------------------------------------------------------------------

//

//------------------------------------------------------------------

//

//

//

//

//

int init()

{

SetIndexBuffer(0,work);

SetIndexBuffer(1,avg);

return(0);

}

int start()

{

int i,countedBars = IndicatorCounted();

if (countedBars<0) return(-1);

if (countedBars>0) countedBars--;

int limit = MathMin(Bars-countedBars,Bars-1);

for(i=limit; i>=0; i--)

{

work = iRSI(NULL,0,RsiPeriod,RsiPrice,i);

int y = iBarShift(NULL,PERIOD_D1,Time);

int x = iBarShift(NULL,PERIOD_D1,Time);

if (x!=y)

{

int k = iBarShift(NULL,0,iTime(NULL,PERIOD_D1,y));

double average = work[k];

int c = 1;

for (int j=k-1; j>=i; j--,c++) average += work[j]; average /= c;

for ( j=k ; j>=i; j--) avg[j] = average;

}

}

return(0);

}

dasio:
Ciao, grazie per la tua risposta,

Forse non mi sono spiegato bene.

Ho creato un indicatore che disegna una linea in una finestra separata del grafico con il mio calcolo basato sulle barre precedenti.

Ora ho bisogno di aggiungere una linea nell'indicatore dove il valore di questa linea è uguale all'evarage dell'ultimo valore 24 calcolato nell'ultimo giorno e ho bisogno di disegnare questa linea nel giorno precedente. Ho allegato un'immagine. Tuttavia questa linea deve essere calcolata alla fine del giorno perché deve essere calcolata per il valore di la 24 dell'indicatore per lo stesso giorno in cui la calcolo.

Per il momento questo indicatore deve essere utilizzato solo in timeframe 1 ora quindi non è un indicatore MTF.

Grazie.

ps. Le linee bianche sono calcolate per lo stesso valore 24 del periodo di 1 giorno dove sono stampate.

File:
test.gif  34 kb