Fragen Sie! - Seite 130

 
Dave137:

Gerade jetzt, beide Farbe(n) 1 & 2 zeigen "schwarz" auf dem Diagramm!!!

Kann mir ein erfahrener Guru helfen, dieses Problem zu lösen?

Vielen Dank im Voraus!

Farbe Farbe1;

Farbe Farbe2;

FerruFx

 

Kann mir bitte jemand erklären, wie ich ein "OrderModify error 1"-Problem loswerden kann. Ich habe nachgeschaut und es scheint, dass ich NormalizeDouble() verwenden muss, aber ich habe alles von hier bis zum Mond normalisiert und trotzdem bekomme ich den Fehler.

Sobald ich es verstehe, denke ich, ich werde in der Lage sein, es herauszufinden, bitte kann jemand helfen. danke.

Ich erhalte auch einen "unmatched data error(volume limit 31 at 2008.04.16 07:30 exceeded)", wenn jemand weiß, was es damit auf sich hat, wäre ich dankbar für die Hilfe.

 
FerruFx:
Farbe Farbe1;

Farbe Farbe2;

FerruFx

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

SetIndexStyle(1,DRAW_ARROW,0,Sterngröße,Farbe Farbe2);

Ich habe versucht, überall Farbe einzufügen, einen Schritt und einen Versuch nach dem anderen, und entweder erhalte ich einen Fehler für die beiden obigen Anweisungen -')' - Komma oder Semikolon erwartet oder keinen Fehler, aber dann ist alles schwarz.

Das verwirrt mich wirklich - hat jemand noch weitere Vorschläge?

Dave

 

@xerof123 - dieser Fehler tritt auf, wenn Sie versuchen, einen Auftrag mit denselben Werten zu ändern, die der offene Auftrag bereits hat. Das andere Problem sind falsche Preisabstimmungen zwischen den verschiedenen Zeitrahmen - um diese loszuwerden, löschen Sie alle Tick-Daten über das Menü History Center und generieren Sie sie neu.

@Dave137 - wo soll ich anfangen, Sie haben color1, color2 als Typ string definiert, während diese vom Typ color sind. Beachten Sie, dass das Schlüsselwort "color1" in der "properties"-Definition lediglich einen Wert zuweist. Wenn Sie also später "color1" und "color2" definieren, könnten sie genauso gut "c1" und "c2" heißen. Beachten Sie außerdem, dass Sie 'properties color1' zu Beginn nicht verwenden müssen, da Sie sie ohnehin manuell in der Funktion init() festlegen. Schauen Sie auch bei anderen Indikatoren nach, wie Sie '#property indicator buffers x' und 'indicatorbuffers(x)' verwenden...

 

Danke Omelett,

Ich habe alles versucht, was ich kann, ich bin jetzt seit 6 Tagen ununterbrochen damit beschäftigt und es hat mich geschlagen...

Bitte können Sie sich den Code hier ansehen und mir sagen, warum ich die elende "OrderModify error 1" erhalte.

Ich habe versucht, zu normalisieren, ich habe versucht, verschiedene Logik, verdammt, ich habe sogar versucht, bieten es ein Bier.

Ich weiß Ihre Hilfe wirklich zu schätzen. Danke

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

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

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

{

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

if(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)

{

wenn (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)

{

wenn (TS_start > OrderStopLoss() +Point)

{

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

return(0);

}

}

}

}

}

}

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

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

Ich habe versucht, überall Farbe einzufügen, einen Schritt und einen Versuch nach dem anderen, und entweder bekomme ich einen Fehler für die beiden obigen Anweisungen -')' - Komma oder Semikolon erwartet oder keinen Fehler, aber dann ist alles schwarz.

Das verwirrt mich wirklich - haben Sie noch weitere Vorschläge?

Dave

Nein, Sie nehmen die falschen Änderungen vor.

Sie müssen dies ändern:

string Farbe1;

string Farbe2;

Durch dies:

Farbe Farbe1;

Farbe Farbe2;

Das war's schon.

FerruFx

 

Wie kann ich diesen Indikator so einstellen, dass er Alarm schlägt, wenn die Kerze die obere oder untere Linie berührt und die Steigung von oben nach unten oder umgekehrt wechselt?

#property copyright "ANG3110@latchess.com"

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

#property indicator_chart_window

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

extern int Stunden=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 preis_p1,preis_p0,preis_p2,preis_01,preis_00,preis_02;

int p1,p0,p2,fp;

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

int init() {

p=Stunden*60/Periode();

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;

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

wenn (f==1) {

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

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

p2=iBarShift(Symbol(),Periode(),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;}

if (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;}

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

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

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

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

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

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

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

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

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

if (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);

wenn (i==0 || i==p/2) dhm=0.0;

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

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

if (f==0) break;}

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

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);

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);

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

preis_p1=hap;

preis_p0=hap+dlm/2;

preis_p2=hap+dlm;

preis_01=ha0;

price_00=ha0+dlm/2;

preis_02=ha0+dlm;

}

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

if (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);

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

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

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

if (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);

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

preis_p1=lap;

preis_p0=lap+dhm/2;

preis_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,Zeit[p],preis_p0,Zeit[0],preis_00);

ObjectCreate("2"+sName,2, 0,Zeit[p],preis_p2,Zeit[0],preis_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); // steuert die Breite der Linie

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,Zeit[0]);

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

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

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

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

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

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

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

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

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

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

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

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

return(0);}

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

 
xerof123:
Danke Omelett,

Ich habe alles versucht, ich kann, ich habe es jetzt für 6 Tage nonstop und es hat mich geschlagen...

Bitte können Sie sich den Code hier ansehen und mir sagen, warum ich die elende "OrderModify error 1" erhalte.

Ich habe versucht, zu normalisieren, ich habe versucht, andere Logik, verdammt, ich habe sogar versucht, bieten es ein Bier.

ich weiß deine Hilfe wirklich zu schätzen. Danke

Lesen Sie noch einmal, was ich geschrieben habe - Sie rufen die Funktion Modify() auf, ohne vorher zu prüfen, ob der/die Preis(e) geändert werden müssen...

 

omelette hat Ihre Frage sehr gut beantwortet. Ich muss sagen, der Kerl hat die Geduld eines Heiligen, ich lobe ihn.

Zur besseren Veranschaulichung der Aussage, die er macht, wie wäre es mit folgendem.

Was du im Grunde sagst, ist, wenn 2 > 1, dann ändere X=2, aber das Problem, das du hast, ist, dass X bereits gleich 2 ist, so dass die Frage, es zu ändern, falsch ist, da es bereits gleich dem ist, was du versuchst, es zu ändern.

Sie müssen nur überprüfen, dass es nicht gleich dem Wert ist, den Sie ändern wollen, und nur dann versuchen, es zu ändern.

Ist das klarer?

Viel Glück!

Lux

 

Ich benutze EA zum ersten Mal und brauche Hilfe.

Lieber codersguru,

ich habe die .mql4-Datei in den Expertenordner kopiert und den automatischen Handel im Abschnitt "Optionen" aktiviert, aber wenn ich den Backtest durchführe, wird kein Handel erzeugt. Ich habe ein paar kostenlose EAs im Netz ausprobiert, das Problem trat jedes Mal auf. Ich kann sehen, dass die Backtest-Daten im Chart geladen wurden, aber kein Handel, so dass im Bericht alle Zahlen 0 sind. Ich muss etwas falsch gemacht haben, ich hoffe, Sie können helfen. Vielen Dank im Voraus.

Mit freundlichen Grüßen,

jzhai1994