Chiedete! - pagina 130

 
Dave137:

In questo momento, entrambi i colori 1 e 2 mostrano 'nero' sul grafico!

Qualche esperto Guru può aiutarmi a risolvere questo problema?

Grazie in anticipo!

colore Color1;

colore Colore2;

FerruFx

 

Per favore, qualcuno può spiegarmi come posso sbarazzarmi del problema "OrderModify error 1". Ho cercato e sembra che ho bisogno di NormalizeDouble(), ma ho normalizzato tutto da qui alla luna e sto ancora ottenendo l'errore.

Una volta che l'avrò capito penso che sarò in grado di capirlo, per favore qualcuno può aiutarmi. grazie.

Sto anche ottenendo un "unmatched data error(volume limit 31 at 2008.04.16 07:30 exceeded)" se qualcuno sa di cosa si tratta apprezzerei l'aiuto.

 
FerruFx:
colore Color1;

colore Color2;

FerruFx

SetIndexStyle(0,DRAW_ARROW,0,star_size,colore Color1);

SetIndexStyle(1,DRAW_ARROW,0,star_size,colore Color2);

Ho provato a inserire il colore dappertutto, un passo e una prova alla volta, e o ottengo un errore per le due dichiarazioni di cui sopra -')' - attesa la virgola o il punto e virgola o nessun errore, ma poi tutto appare nero.

Questo mi confonde davvero - Qualche altro suggerimento?

Dave

 

@xerof123 - questo errore si verifica quando cerchi di modificare un ordine con gli stessi valori che l'ordine aperto ha già. L'altro problema è la mancata corrispondenza dei prezzi tra i diversi timeframe - per eliminarli, cancella e rigenera tutti i dati dei tick tramite il menu History Center.

@Dave137 - da dove cominciare, hai color1, color2 definiti come tipo stringa, mentre questi sono di tipo colore. Nota che la parola chiave 'color1' nella definizione delle 'proprietà' sta solo assegnando un valore, quindi quando in seguito definisci color1, color2, potrebbero essere altrettanto facilmente chiamati c1,c2. Notate inoltre che non avete bisogno di usare 'proprietà colore1' per iniziare, dato che li state comunque impostando manualmente nella funzione init(). Inoltre, controlla altri indicatori su come usare '#proprietà indicatore buffer x' e 'indicatorbuffers(x)'...

 

Grazie omelette,

Ho provato tutto il possibile, ormai sono 6 giorni che ci lavoro senza sosta e mi ha battuto...

Per favore, puoi dare un'occhiata al codice qui e dirmi perché ottengo il miserabile "OrderModify error 1".

Ho provato a normalizzare, ho provato una logica diversa, diamine ho anche provato a offrirgli una birra.

Apprezzo molto il vostro aiuto. Grazie

for(int i=OrdersTotal()-1;i>=0;i--)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)

{

se(OrderType()<=OP_SELL) ordtotal++;

se(OrderType()==OP_BUY)

{

if(bep==true && Bid-OrderOpenPrice()>=Locked_at*Point)

{

if(OrderModify(OrderTicket(),0,OrderOpenPrice()+7*Point,0,0,0)==true) bep=false;

return(0);

}

if((NormalizeDouble( Bid, Digits)-OrderOpenPrice())>=TS_start*Point)

{

if((NormalizeDouble( Bid, Digits)-NormalizeDouble( OrderStopLoss(), Digits)) > TS_start*Point &&

(NormalizeDouble( Bid, Digits)-NormalizeDouble( OrderStopLoss(), Digits) - TS_start*Point)>=(TrailEvery-1)*Point)

{

se (TS_start > OrderStopLoss()+Point)

{

OrderModify(OrderTicket(),OrderOpenPrice(), Ask - Point*TS_start ,0,0,SkyBlue);

return(0);

}

}

}

}

if(OrderType()==OP_SELL)

{

if(bep==true && OrderOpenPrice()-NormalizeDouble( Ask, Digits) >= Locked_at*Point)

{

if(OrderModify(OrderTicket(),0,OrderOpenPrice()-7*Point,0,0,0)==true) bep=false;

return(0);

}

if((OrderOpenPrice()-NormalizeDouble( Ask, Digits)) >= TS_start*Point)

{

if((NormalizeDouble( OrderStopLoss(), Digits)-NormalizeDouble( Ask, Digits)) > TS_start*Point &&

(NormalizeDouble( OrderStopLoss(), Digits)-NormalizeDouble( Ask, Digits)-TS_start*Point)>=(TrailEvery-1)*Point)

{

se (TS_start > OrderStopLoss() +Point)

{

OrderModify(OrderTicket(),OrderOpenPrice(), Ask + Point*TS_start ,0,0,Orange);

return(0);

}

}

}

}

}

}

 
Dave137:
SetIndexStyle(0,DRAW_ARROW,0,star_size,colore Color1);

SetIndexStyle(1,DRAW_ARROW,0,star_size,color Color2);

Ho provato a inserire il colore dappertutto, un passo e una prova alla volta, e o ottengo un errore per le due dichiarazioni di cui sopra -')' - virgola o punto e virgola previsto o nessun errore, ma poi tutto appare nero.

Questo mi confonde davvero - Qualche altro suggerimento?

Dave

No, hai fatto le modifiche sbagliate.

Devi cambiare questo:

stringa Color1;

stringa Colore2;

con questo:

colore Color1;

colore Color2;

Questo è tutto.

FerruFx

 

Come posso ottenere questo indicatore per avvisare quando la candela tocca la linea superiore o inferiore e la pendenza cambia da su a giù o viceversa?

#property copyright "ANG3110@latchess.com"

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

#property indicator_chart_window

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

extern int Ore=24;

extern color col=Aqua;

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

double lr,lr0,lrp;

double sx,sy,sxy,sx2,aa,bb;

int p,sName,fs;

int f,f0,f1;

double dh,dl,dh_1,dl_1,dh_2,dl_2;

int ai_1,ai_2,bi_1,bi_2;

double hai,lai,dhi,dli,dhm,dlm,ha0,hap,la0,lap;

double price_p1,price_p0,price_p2,price_01,price_00,price_02;

int p1,p0,p2,fp;

//*****************************************

int init() {

p=Ore*60/Periodo();

if (fs==0) {sName=CurTime(); fs=1;}

return(0);}

//*******************************

int deinit() {

ObjectDelete("1"+sName);

ObjectDelete("0"+sName);

ObjectDelete("2"+sName); }

//*******************************

int start() {

int i,n;

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

se (f==1) {

p1=iBarShift(Symbol(),Period(),ObjectGet("1"+sName,OBJPROP_TIME1));

p0=iBarShift(Symbol(),Period(),ObjectGet("0"+sName,OBJPROP_TIME1));

p2=iBarShift(Symbol(),Period(),ObjectGet("2"+sName,OBJPROP_TIME1));

if (fp==0 && p!=p1) {p=p1; fp=1;}

if (fp==0 && p!=p0) {p=p0; fp=1;}

if (fp==0 && p!=p2) {p=p2; fp=1;}

}

//====================================================

sx=0; sy=0; sxy=0; sx2=0;

for (n=0; n<=p; n++) {sx+=n; sy+=Close[n]; sxy+=n*Close[n]; sx2+=MathPow(n,2);}

aa=(sx*sy-(p+1)*sxy)/(MathPow(sx,2)-(p+1)*sx2); bb=(sy-aa*sx)/(p+1);

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

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

lr=bb+aa*i;

dh=High-lr; dl=Low-lr;

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

if (i<p/2) {if (i==0) {dh_1=0.0; dl_1=0.0; ai_1=i; bi_1=i;}

if (dh>=dh_1) {dh_1=dh; ai_1=i;}

se (dl<=dl_1) {dl_1=dl; bi_1=i;}}

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

if (i>=p/2) {if (i==p/2) {dh_2=0.0; dl_2=0.0; ai_2=i; bi_2=i;}

se (dh>=dh_2) {dh_2=dh; ai_2=i;}

se (dl<=dl_2) {dl_2=dl; bi_2=i;}}}

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

lr0=bb; lrp=bb+aa*(i+p);

//===================================================

se (MathAbs(ai_1-ai_2)>MathAbs(bi_1-bi_2)) f=1;

se (MathAbs(ai_1-ai_2)<MathAbs(bi_1-bi_2)) f=2;

se (MathAbs(ai_1-ai_2)==MathAbs(bi_1-bi_2)) {if (MathAbs(dh_1-dh_2)=MathAbs(dl_1-dl_2)) f=2;}

//=================================================

se (f==1) {

for (n=0; n<=20; n++) { f1=0;

for (i=0; i<=p; i++) {hai=High[ai_1]*(i-ai_2)/(ai_1-ai_2)+High[ai_2]*(i-ai_1)/(ai_2-ai_1);

se (i==0 || i==p/2) dhm=0,0;

if (High-hai>dhm && i<p/2) {ai_1=i; f1=1;}

if (Alto-hai>dhm && i>=p/2) {ai_2=i; f1=1;} }

if (f==0) break;}

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

for (i=0; i<=p; i++) {hai=Alto[ai_1]*(i-ai_2)/(ai_1-ai_2)+Alto[ai_2]*(i-ai_1)/(ai_2-ai_1);

dli=Low-hai;

if (i==0) dlm=0.0; if (dli<dlm) dlm=dli;}

ha0=High[ai_1]*(0-ai_2)/(ai_1-ai_2)+High[ai_2]*(0-ai_1)/(ai_2-ai_1);

hap=High[ai_1]*(p-ai_2)/(ai_1-ai_2)+High[ai_2]*(p-ai_1)/(ai_2-ai_1);

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

prezzo_p1=hap;

prezzo_p0=hap+dlm/2;

prezzo_p2=hap+dlm;

price_01=ha0;

price_00=ha0+dlm/2;

price_02=ha0+dlm;

}

//=================================================

se (f==2) {

for (n=0; n<=20; n++) { f1=0;

for (i=0; i<=p; i++) {lai=Low*(i-bi_2)/(bi_1-bi_2)+Low*(i-bi_1)/(bi_2-bi_1);

se (i==0 || i==p/2) dlm=0,0;

if (Low-lai<dlm && i<p/2) {bi_1=i; f1=1;}

if (Low-lai=p/2) {bi_2=i; f1=1;}}

se (f==0) break;}

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

for (i=0; i<=p; i++) {lai=Low*(i-bi_2)/(bi_1-bi_2)+Low*(i-bi_1)/(bi_2-bi_1);

dhi=High-lai;

if (i==0) dhm=0.0; if (dhi>dhm) dhm=dhi;}

la0=Low*(0-bi_2)/(bi_1-bi_2)+Low*(0-bi_1)/(bi_2-bi_1);

lap=Low*(p-bi_2)/(bi_1-bi_2)+Low*(p-bi_1)/(bi_2-bi_1);

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

price_p1=lap;

price_p0=lap+dhm/2;

price_p2=lap+dhm;

price_01=la0;

price_00=la0+dhm/2;

price_02=la0+dhm;

}

//===================================================================================

ObjectCreate("1"+sName,2, 0,Time[p],price_p1,Time[0],price_01);

ObjectCreate("0"+sName,2, 0,Time[p],price_p0,Time[0],price_00);

ObjectCreate("2"+sName,2, 0,Time[p],price_p2,Time[0],price_02);

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

ObjectSet("1"+sName,OBJPROP_COLOR,col);

ObjectSet("1"+sName,OBJPROP_STYLE,STYLE_SOLID);

ObjectSet("0"+sName,OBJPROP_COLOR,col);

ObjectSet("0"+sName,OBJPROP_STYLE,STYLE_DOT);

ObjectSet("2"+sName,OBJPROP_COLOR,col);

ObjectSet("2"+sName,OBJPROP_STYLE,STYLE_SOLID);

ObjectSet("0"+sName,OBJPROP_WIDTH,1); // controlla la larghezza della linea

ObjectSet("1"+sName,OBJPROP_WIDTH,2);

ObjectSet("2"+sName,OBJPROP_WIDTH,2);

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

ObjectSet("1"+sName,OBJPROP_TIME1,Time[p]);

ObjectSet("1"+sName,OBJPROP_PRICE1,price_p1);

ObjectSet("1"+sName,OBJPROP_TIME2,Time[0]);

ObjectSet("1"+sName,OBJPROP_PRICE2,price_01);

ObjectSet("0"+sName,OBJPROP_TIME1,Time[p]);

ObjectSet("0"+sName,OBJPROP_PRICE1,price_p0);

ObjectSet("0"+sName,OBJPROP_TIME2,Time[0]);

ObjectSet("0"+sName,OBJPROP_PRICE2,price_00);

ObjectSet("2"+sName,OBJPROP_TIME1,Time[p]);

ObjectSet("2"+sName,OBJPROP_PRICE1,price_p2);

ObjectSet("2"+sName,OBJPROP_TIME2,Time[0]);

ObjectSet("2"+sName,OBJPROP_PRICE2,price_02);

//==================================================================

f=1; p1=p; p0=p; p2=p; fp=0;

//*************************************************************************************

return(0);}

//=====================================================================================

 
xerof123:
Grazie omelette,

Ho provato tutto il possibile, ci sto lavorando da 6 giorni senza sosta e mi ha battuto...

Per favore, potete dare un'occhiata al codice qui e dirmi perché sto ottenendo il miserabile "OrderModify error 1".

Ho provato a normalizzare, ho provato una logica diversa, diamine, ho anche provato a offrirgli una birra.

apprezzo molto il tuo aiuto. Grazie

Rileggi quello che ho scritto - stai chiamando la funzione Modify() senza prima controllare se il prezzo(i) deve essere modificato...

 

La frittata ha risposto molto bene alla tua domanda. Devo dire che il ragazzo ha la pazienza di un santo, mi congratulo con lui.

Speriamo che per illustrare meglio il punto che sta facendo cosa ne pensi di questo.

Quello che stai praticamente dicendo ora è se 2 > 1 Allora modifica (cambia) X=2 ma il problema che hai è che X è già uguale a 2 quindi chiedere di modificarlo (cambiarlo) non è corretto in quanto è già uguale a quello a cui stai cercando di modificarlo.

Devi solo controllare che non sia uguale a quello a cui stai cercando di cambiarlo e provare a modificarlo solo se non lo è.

È più chiaro?

In bocca al lupo

Lux

 

prima volta per usare EA, bisogno di aiuto.

Caro codersguru,

Ho copiato il file .mql4 nella cartella expert e ho attivato il trading automatico nella sezione Option, ma quando faccio il back test non genera nessun trade. Ho provato alcuni EA gratuiti in rete, il problema si è verificato ogni volta. Posso vedere che i dati del back test sono stati caricati nel grafico, ma nessun trade, così nel report tutte le cifre sono 0. Devo aver fatto qualcosa di sbagliato, spero possiate aiutarmi. Grazie in anticipo.

Saluti,

jzhai1994