Chiedete! - pagina 71

 

Chiesto e risposto

Ciao a tutti,

Pensavo di avere le mie risposte con il seguente codice:

double range[5];

for(int i=1;i<5;i++)

{

range={High-Low};

int Max=ArrayBsearch(range,10,WHOLE_ARRAY,1,MODE_ASCEND);

double MaxRange=(High[Max]-Low[Max])/Point;

}

Print("Max Range: ",MaxRange," found at index: ",Max);

Ma ancora restituisce solo l'ultimo indice non il più grande indice di intervallo.

Qualsiasi ulteriore aiuto sarebbe apprezzato.

SaxMan

 

Errore risolto

SaxMan:
Ciao a tutti,

Pensavo di avere le mie risposte con il seguente codice:

double range[5];

for(int i=1;i<5;i++)

{

range={High-Low};

int Max=ArrayBsearch(range,10,WHOLE_ARRAY,1,MODE_ASCEND);

double MaxRange=(High[Max]-Low[Max])/Point;

}

Print("Max Range: ",MaxRange," found at index: ",Max);

[/code]

But it still just returns the last index not the largest range index.

Any further help would be appreciated.

SaxMan

Ecco la correzione:

[codice]

doppio range[5];

for(int i=1;i<5;i++)

{

range={Alto-Basso};

int Max=ArrayMaximum(range);

double MaxRange=(High[Max]-Low[Max])/Point;

}

Print("Max Range: ",MaxRange," trovato all'indice: ",Max);

Questo potrebbe essere usato per ottenere il più alto/basso (usando ArrayMinimum(range)) dell'array per confrontare qualsiasi variabile.

Spero che questo aiuti,

SaxMan

 

Stesso codice con aggiunte

Aggiunte:

* Intervallo minimo

* Linee verticali per evidenziare le barre degli intervalli Max e Min:

double range[2000];

for(int i=1;i<2000;i++)

{

range={High-Low};

int Max=ArrayMaximum(range,WHOLE_ARRAY,1);

int Min=ArrayMinimum(range,WHOLE_ARRAY,1);

double MaxRange=(High[Max]-Low[Max])/Point;

double MinRange=(High[Min]-Low[Min])/Point;

}

Print("Max Range: ",MaxRange," pips found at index: ",Max);

Print("Min Range: ",MinRange," pips found at index: ",Min);

int time1=Time[Max];

int time2=Time[Min];

ObjectCreate("stats1",OBJ_VLINE,0,0,0);

ObjectSet("stats1", OBJPROP_TIME1, time1);

ObjectSet("stats1", OBJPROP_COLOR, Red);

ObjectSet("stats1", OBJPROP_WIDTH, 1);

ObjectCreate("stats2",OBJ_VLINE,0,0,0);

ObjectSet("stats2", OBJPROP_TIME1, time2);

ObjectSet("stats2", OBJPROP_COLOR, Blue);

ObjectSet("stats2", OBJPROP_WIDTH, 1);
 

Il codice è conforme, ma non visualizza il valore

extern Bool Direction_Up=true;

if(Direction_Up==true) Dir="UP"; ///////////Questa è una conversione sbagliata - Come posso convertirla nella sintassi corretta????

ObjectCreate("Dir", OBJ_LABEL, 0, 0, 0);

ObjectSetText("Dir", 10, "Arial", White);///////////Questo è sbagliato - Come faccio a visualizzarlo UP sullo schermo????

ObjectSet("Dir", OBJPROP_CORNER, 1);

ObjectSet("Dir", OBJPROP_XDISTANCE, 36);

ObjectSet("Dir", OBJPROP_YDISTANCE, 120);///

Dave <<<
 

Ciao,

int start()

{

int i;

if ((Year() >= X) && (Month() >= Y))

{

Comment("===========",expired,"===========");

return(0);

}

GetPosition = StrToTime(StrGetPosition);

StartOrderTime = StrToTime(StrStartOrderTime);

EndOrderTime = StrToTime(StrEndOrderTime);

return(0);

La mia domanda è:

GetPosition, StartOrderTime, EndOrderTime saranno eseguiti?

Saluti

 

Domande

Ciao,

Un mio amico mi ha parlato di questo sito. Mi ha detto che hanno i migliori programmatori mql.

Eccone uno:

Se ho impostato un codice, per esempio....per comprare alle 15:30 (la maggior parte del tempo di notizie), ho controllato il calendario economico.

if (Hour()==15)

{

if (Minute()>=30)

{

if (Seconds()>=00)

[/PHP]

After this, something like this goes:

[PHP]

OrderSend(Symbol().......................

Ognuno lo scrive in modo diverso.

Perché non può essere lo stesso?

Ok, ecco il problema. Per il codice di cui sopra, voglio che l'OrderSend........e la parte continua creino un BuyStop 30 pips sopra il prezzo alle 15:30:00, e un SellStop 25 pips sotto il prezzo alle 15:30:00.

Ho chiesto alla mia migliore amica e mi ha detto di chiedere a voi. Quindi, spero davvero che voi siate di grande aiuto.

Ho passato settimane a cercare di capire questo codice. Non sto scherzando. Quindi, qualcuno che si occupa di codifica in mql4 può aiutarmi?

---Julia---

 
iscuba11:
extern Bool Direction_Up=true;

if(Direction_Up==true) Dir="UP"; ///////////Questa è una conversione sbagliata - Come la converto nella sintassi corretta????

ObjectCreate("Dir", OBJ_LABEL, 0, 0, 0);

ObjectSetText("Dir", 10, "Arial", White);///////////Questo è sbagliato - Come faccio a visualizzarlo UP sullo schermo????

ObjectSet("Dir", OBJPROP_CORNER, 1);

ObjectSet("Dir", OBJPROP_XDISTANCE, 36);

ObjectSet("Dir", OBJPROP_YDISTANCE, 120);///

Dave <<<

Ciao Iscuba11,

vedi il codice per la correzione e la spiegazione

extern bool Direction_Up=true; //-- bool with a lower case "b"

string Dir; //-- Dir has to be declared as a string

if(Direction_Up==true) Dir="UP";

ObjectCreate("Dir", OBJ_LABEL, 0, 0, 0);

ObjectSetText("Dir",Dir, 10, "Arial", White); // -- you left out the text to print - you named the object only.

ObjectSet("Dir", OBJPROP_CORNER, 1);

ObjectSet("Dir", OBJPROP_XDISTANCE, 36);

ObjectSet("Dir", OBJPROP_YDISTANCE, 120);

Spero che questo aiuti,

SaxMan

 

Settimane?!

MQL4: trading automatizzato sul forex, tester di strategie e indicatori personalizzati con MetaTrader

ricerca di OrderSend() - docs

Cita

OrderSend - Documentazione MQL4

int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)

symbol - Simbolo per il trading.

cmd - Tipo di operazione. Può essere uno qualsiasi dell'enumerazione delle operazioni di trading.

volume - Numero di lotti.

price - Prezzo preferito dell'operazione.

slippage - Slittamento massimo del prezzo per gli ordini di acquisto o di vendita.

stoploss - Livello di stop loss.

takeprofit - Livello di take profit.

comment - Testo del commento dell'ordine. L'ultima parte del commento può essere cambiata dal server.

magic - Numero magico dell'ordine. Può essere usato come identificatore definito dall'utente.

expiration - Tempo di scadenza dell'ordine (solo per ordini pendenti).

arrow_color - Colore della freccia di apertura sul grafico. Se il parametro manca o ha il valore CLR_NONE la freccia di apertura non viene disegnata sul grafico.

Quindi nel nostro caso abbiamo questo:

OrderSend(Symbol(),OP_BUYSTOP,0.1,Ask+30*Point,3,0,0,NULL,1,0); OrderSend(Symbol(),OP_SELLSTOP,0.1,Bid-25*Point,3,0,0,NULL,1,0);

Questo è tutto!

Nessuno stoploss, nessun takeprofit.

Attenzione: il vostro broker (molto probabilmente) non accetterà nuovi ordini alle 15:30, non sognatevelo nemmeno. Sì, funzionerà sulla demo ma non sul conto reale - non prima di 5 minuti prima delle notizie e non meno di 3 minuti dopo le notizie.

Utilizzare i motori di ricerca

Google

Yahoo!

e altri.

PS:

se vuoi che scriva un EA per te, fammi un PM.

 

Hai reso la mia giornata e il mio fine settimana con la correzione del codice. Grazie mille!

Possa tu avere un fine settimana benedetto!

Cordialmente,

Dave

<<<
 

Come si può usare ObjectCreate su un indicatore-separate-window rispetto al chart-window???? Questo sarebbe utile!

Dave <<<
Motivazione: