Come codificare? - pagina 81

 

Aiuto necessario

Ciao a tutti i codificatori,

Per favore ditemi il codice come posso controllare il prezzo in base alle candele. Voglio dire come posso controllare che la candela corrente tocchi la linea MA o no? e come posso codificare che la candela corrente ha aperto, alto, basso e chiuso sotto la linea MA. Il vostro aiuto sarà molto apprezzato.

Cordiali saluti.......!

 
arsenic786:
Ciao a tutti i codificatori,

Per favore mi dica il codice come posso controllare il prezzo secondo le candele. Voglio dire come posso controllare che la candela corrente tocchi la linea MA o no? e come posso codificare che la candela corrente ha aperto, alto, basso e chiuso sotto la linea MA. Il vostro aiuto sarà molto apprezzato.

I migliori saluti.......!

Beh, per controllare l'incrocio devi confrontare il prezzo di chiusura precedente, la chiusura attuale e il valore della media mobile (quindi iMa, Close[1], e Close[0]).

Ma per controllare se la candela è sotto o sotto la media mobile è necessario confrontare il prezzo LOW e HIGH e il valore di iMa.

 

Indicatore del tempo tra i tick

Vorrei costruire un indicatore di cui un elemento è il tempo tra i tick. Qualcuno può consigliarmi se è possibile incorporare questa funzione?

Grazie

 

Scansione attraverso coppie/tempi

Salve,

Vorrei fare una scansione di alcune coppie e di alcuni time frame delle coppie per rilevare l'ambiente attuale (trending, range bound ecc.) utilizzando indicatori come ADX. Questo per aiutarmi a selezionare la migliore coppia/timeframe su cui fare trading in base al mio set di criteri.

Il modo peggiore per uscirne è collegare un EA che rileva l'ambiente a TUTTI i grafici, fargli scrivere i risultati in un file e poi fare il mio confronto sul file. Tuttavia questo sarà troppo noioso e manuale!

E' possibile collegare il mio EA a 1 solo grafico, e fare in modo che l'EA ottenga i dati da tutte le coppie e i timeframe utilizzando funzioni di serie temporali come iClose, iOpen ecc, e poi dare il prezzo ai miei indicatori?

Qualcuno prevede qualche problema con il 2° metodo? Troppa elaborazione da parte della CPU? Il tempo impiegato per eseguire il controllo sarà troppo lungo, ecc? Non ho bisogno di time frame più fine di 5 min.

Sono nuovo di EA e quindi non conosco le prestazioni di esso. Qualsiasi aiuto sarà molto apprezzato. Salute!

 

Collegare programmaticamente un EA al grafico

Salve,

è possibile collegare programmaticamente un EA a un grafico? Diciamo che attualmente sto eseguendo EA1 e voglio che attacchi EA2 ad un altro grafico al compimento di certi criteri. È possibile?

 
meokoken:
Ciao,

Vorrei analizzare alcune delle coppie e alcuni dei time frame delle coppie per rilevare l'ambiente attuale (trending, range bound ecc.) utilizzando indicatori come ADX. Questo per aiutarmi a selezionare la migliore coppia/timeframe su cui fare trading in base al mio set di criteri.

Il modo peggiore per uscirne è quello di collegare un EA di rilevamento dell'ambiente a TUTTI i grafici, fargli scrivere i risultati in un file e poi fare il mio confronto sul file. Tuttavia questo sarà troppo noioso e manuale!

E' possibile collegare il mio EA a 1 solo grafico, e fare in modo che l'EA ottenga i dati da tutte le coppie e i timeframe utilizzando funzioni di serie temporali come iClose, iOpen ecc, e poi dare il prezzo ai miei indicatori?

Qualcuno prevede qualche problema con il 2° metodo? Troppa elaborazione da parte della CPU? Il tempo impiegato per eseguire il controllo sarà troppo lungo, ecc? Non ho bisogno di time frame più fini di 5 min.

Sono nuovo di EA e quindi non ne conosco le prestazioni. Qualsiasi aiuto sarà molto apprezzato. Salute!

Potete usare la funzione simbolo per questo. Ad esempio, se si desidera controllare il valore della media mobile e il prezzo di chiusura su 10 grafici, ad esempio 10 croci da diversi timeframe ma alla barra corrente, allora sarà come questo:

double eurudMa = iMa("EURUSD", blablabla,PERIOD_X,0);

doppio eurusdClose = iClose("EURUSD",PERIOD_X);

e confrontate questi valori se volete.

Lo stesso con altri indicatori. Se vuoi ottenere il prezzo di domanda e offerta di un determinato cross, usa la funzione MarketInfo allo stesso modo.

Saluti

Kale

 

OsMA con linea di segnale

Codificatori, ho bisogno del vostro aiuto. Qualcuno può aggiungere una linea di segnale all'indicatore OsMA allegato? Grazie mille!

File:
osma.mq4  3 kb
 

Come creare la versione digitale di questo?

Ciao ragazzi,

sono un principiante.

Wolfe era stato così gentile da creare un modello per un codice qui sotto, che ho modificato. Funziona perfettamente bene e fa quello che voglio che faccia.

Ma ora,

sto pensando di crearne la versione digitale, simile all'indicatore DIGISTOCH.

Quello che vorrei sapere è:

- Come "cancellare" o "lavare" i buffer? Non riesco a "cancellare" il collegamento dei buffer e crearne di nuovi.

- Come modificare questo per NON includere i buffer? Penso che risparmierà un po' di memoria, giusto? Ho provato a cancellare il SetIndexBuffer ma poi quando viene caricato in MT4 dà errore"zero divide" nella finestra del terminale esperto.

- Entrambe le etichette qui sotto mostrano solo 1 valore, il valore H1. Dovrebbe visualizzare il numero di H1 e H4. Quindi non funziona qui.

- Fondamentalmente voglio che questo visualizzi il numero di Ratio da diversi time frame (da M1 a MN1) in uno schermo, proprio come l'indicatore DIGIStoch.

Qualsiasi aiuto sarebbe apprezzato.

Saluti,

//+------------------------------------------------------------------+

//| 2MA_RSI.mq4 |

//+------------------------------------------------------------------+

#property copyright "Wolfe"

#property link "xxxxwolfe@gmail.com"

#property indicator_separate_window

#property indicator_level1 100

#property indicator_level2 80

#property indicator_level3 50

#property indicator_level4 20

#property indicator_buffers 4

#property indicator_color1 Black //RSI

#property indicator_color2 Blue //MA1

#property indicator_color3 Red //MA2

#property indicator_color4 Green //Ratio

int RSI_Timeframe=0;//0=current chart,1=m1,5=m5,15=m15,30=m30,60=h1,240=h4,etc...

int RSI_Period = 10;

int RSI_Applied_Price = 0;//0=close, 1=open, 2=high, 3=low, 4=(high+low)/2, 5=(high+low+close)/3, 6=(high+low+close+close)/4

int MA1_Period = 10;

int MA1_Method = 1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA

int MA2_Period = 30;

int MA2_Method = 1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA

double RSI[],MA1_Array[],MA2_Array[],MR_Ratio[];

double _RSI[],_MA1_Array[],_MA2_Array[],_MR_Ratio[];

string ShortName="MoR";

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- indicators setting

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1); //RSI

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); //EMA10

SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,1); //EMA30

SetIndexStyle(3,DRAW_LINE,STYLE_SOLID,2); //Ratio

SetIndexBuffer(0,RSI);

SetIndexLabel(0,"RSI");

SetIndexBuffer(1,MA1_Array);

SetIndexLabel(1,"MA1");

SetIndexBuffer(2,MA2_Array);

SetIndexLabel(2,"MA2");

SetIndexBuffer(3,MR_Ratio);

SetIndexLabel(3,"Ratio");

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));

IndicatorShortName(ShortName);

return(0);

}

int start()

{

int i,limit = Bars - IndicatorCounted() - 1;

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

RSI= iRSI(NULL,60,RSI_Period,RSI_Applied_Price,i);

}

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

MA1_Array = iMAOnArray(RSI,0,MA1_Period,0,MA1_Method,i);

MA2_Array = iMAOnArray(RSI,0,MA2_Period,0,MA2_Method,i);

}

for (i=0; i<=limit; i++){

MR_Ratio = MA1_Array / MA2_Array * 100;

}

double tmp1=MR_Ratio[0];

SetText("Label1",DoubleToStr(tmp1,1),Black,55,20);

//+------------------------------------------------------------------+

//| Trying to set new buffers |

//+------------------------------------------------------------------+

IndicatorBuffers(4);

SetIndexBuffer(0,_RSI);

SetIndexBuffer(1,_MA1_Array);

SetIndexBuffer(2,_MA2_Array);

SetIndexBuffer(3,_MR_Ratio);

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

_RSI= iRSI(NULL,240,RSI_Period,RSI_Applied_Price,i);

}

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

_MA1_Array = iMAOnArray(_RSI,0,MA1_Period,0,MA1_Method,i);

_MA2_Array = iMAOnArray(_RSI,0,MA2_Period,0,MA2_Method,i);

}

for (i=0; i<=limit; i++){

_MR_Ratio = _MA1_Array / _MA2_Array * 100;

}

double tmp2=_MR_Ratio[0];

SetText("Label2",DoubleToStr(tmp2,1),Black,95,20);

//----

return(0);

}

void SetText(string ObjName,string ObjText,color clr,int xpos,int ypos){

ObjectCreate(ObjName,OBJ_LABEL,WindowFind(ShortName),0,0);

ObjectSetText(ObjName,ObjText,9,"Arial Bold",clr);

ObjectSet(ObjName,OBJPROP_CORNER,0);

ObjectSet(ObjName,OBJPROP_XDISTANCE,xpos);

ObjectSet(ObjName,OBJPROP_YDISTANCE,ypos);

}

 
SolomonZhang:
Ciao ragazzi,

Sono un principiante qui.

Wolfe è stato così gentile da creare un modello di codice qui sotto, che ho modificato. Funziona perfettamente bene e fa quello che voglio.

Ma ora,

sto pensando di crearne la versione digitale, simile all'indicatore DIGISTOCH.

Quello che vorrei sapere è:

- Come "cancellare" o "lavare" i buffer? Non riesco a "cancellare" il collegamento dei buffer e crearne di nuovi.

- Come modificare questo per NON includere i buffer? Penso che risparmierà un po' di memoria, giusto? Ho provato a cancellare il SetIndexBuffer ma poi quando viene caricato in MT4 dà errore "zero divide" nella finestra del terminale esperto.

- Entrambe le etichette qui sotto mostrano solo 1 valore, il valore H1. Dovrebbe visualizzare il numero di H1 e H4. Quindi non funziona qui.

- Fondamentalmente voglio che questo visualizzi il numero Ratio da diversi time frame (da M1 a MN1) in uno schermo, proprio come l'indicatore DIGIStoch.

Qualsiasi aiuto sarebbe apprezzato.

Grazie,

Basta definire un valore vuoto per i buffer dopo l'init per ogni ciclo.

A proposito di zero divide basta creare qualche condizione "if" prima del calcolo.

 

Codice del segnale multitemporale

Ciao programmatori

Sono un principiante che sta imparando a programmare e ho creato un EA di base e apprezzerei se qualcuno fosse così gentile da aiutarmi con quanto segue:

L'idea è quella di cercare fondamentalmente un segnale di TF superiore e aspettare il ritracciamento in TF inferiore e poi eseguire l'ordine come :

se 4 HR genera un segnale sul seguente:

if(MacdCurrentSignalCurrent)MacdPrevious<SignalPrevious)=LongSignalActivated

come tenere sopra il segnale e aspettare il ritracciamento di 1 HR (o qualsiasi altro time frame) come

if (MacdCurrentSignalCurrent && MacdPrevious<SignalPrevious) Order=SignalBuy

O

Qualsiasi altra strategia.

Ho già tutti gli indicatori definiti in variabili per diversi time frame...

Posso inviare EA se qualcuno è disposto a dare una mano ... anche se qualsiasi programmatore esperto è disposto a lavorare con me la mia strategia, sono disposto a compensare (purtroppo non può permettersi di pagare molto) ...

Apprezziamo qualsiasi aiuto

Mo Syed

email: moi.syed@gmail.com