Wie programmiert man? - Seite 166

 

Danke für Ihre Antwort.

aber das funktioniert nicht, wenn es Slippage gab, als die Position geschlossen wurde, richtig?

 
codersview:
Hallo zusammen,

Ich habe ein Problem mit dem EA von RSI und MA...

Ich habe den Indikator arbeiten richtig... Alles, was ich will, ist, es in EA zu konvertieren...

Ich habe ein paar Dinge ausprobiert. IndicatorCounted() funktioniert nicht in EA, also habe ich versucht, die Werte der for-Schleife hart zu kodieren (bar=0; bar<15; bar++), ich bekam korrekte RSI, aber SMA ist nicht geben corect Werte...

Ich hänge den Code für den SMA an, der den RSI kreuzt...

Könnte mir also bitte jemand helfen, diesen Indikator in EA zu konvertieren?

***************************************************************************************************************************************

#property indicator_separate_window

#Eigenschaft indicator_buffers 2

#property indicator_color1 RasenGrün

#property indicator_color2 Dunkelblau

double ExtMapBuffer1[];

double ExtMapBuffer2[];

int init()

{

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

SetIndexStyle(0,DRAW_LINE);

SetIndexPuffer(0,ExtMapPuffer1);

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);

SetIndexBuffer(1,ExtMapBuffer2);

return(0);

}

int deinit()

{

return(0);

}

int start()

{

int bar, limit;

int gezählte_Balken=IndicatorCounted();

if(gezählte_Balken<0) return(-1);

if(gezählte_Balken>0) gezählte_Balken--;

limit=Balken-IndikatorGezählt();

for(bar=0; bar<limit; bar++)

ExtMapBuffer1 = iRSI(NULL,0,14,PRICE_TYPICAL,bar);

for(bar=0; bar<limit; bar++)

ExtMapBuffer2=iMAOnArray(ExtMapBuffer1,Bars,14,0,MODE_SMA,bar);

return(0);

}

***************************************************************************************************************************************

Vielen Dank und herzliche Grüße,

Ganesh

Ganesh,

Versuchen Sie, die Balken in zeitlicher Reihenfolge auszuführen.

Anstatt for(bar=0; bar<limit; bar++)

Verwenden Sie for(bar=limit-1; bar>=0; bar--)

Chazzmoney

 

Hallo

Danke für die schnelle Antwort... Ich habe es versucht, aber doesnt machen keinen Unterschied...

Das auch, wenn wir Bars in der Schleife verwenden, hat es ganze Werte (für alle Bars) für jeden einzelnen Tick zu berechnen... und es könnte eine Verzögerung... Auch der SMA-Wert würde Null sein.

Im Indikator würden wir RSI und EMA nur für den neuen Balken berechnen, indem wir IndicatorCounted() verwenden, aber wir können es nicht im EA verwenden.

Der genaue Punkt des Problems ist die 2. for-Schleife und die Werte für das iMAOnArray.

Erste for-Schleife funktioniert perfekt, auch wenn wir hard-code es...

 
jan100:
Danke für Ihre Antwort. Aber das funktioniert nicht, wenn es beim Schließen der Position einen Slippage gab, richtig?

Einige Makler schreiben [sl] und [tp] in das Kommentarfeld. Sie können das auch verwenden.

 

Danke, ich werde es versuchen.

Wie ist es möglich, den letzten abgeschlossenen Auftrag mit der richtigen magischen Zahl auszuwählen?

 
jan100:
Danke. Ich werde es versuchen. Wie kann man den letzten geschlossenen Auftrag mit der richtigen magischen Zahl auswählen?

Wenn Sie es in der Historienliste finden, ist es ein geschlossener Auftrag, wenn in der Gesamtliste - noch geöffnet.

 

Ea-Code anfordern: Vorherige Order schließen, wenn neue Position eröffnet wird

Hallo, ich möchte eine Anfrage für einen Code stellen, der bei der Eröffnung einer neuen Position automatisch die vorherige Order schließt, d.h. ich möchte keinen Take Profit oder Trailling verwenden.

Beispiel:

Wenn der Kaufauftrag offen ist, wird der vorherige Verkaufsauftrag geschlossen.

Wenn eine Verkaufsorder geöffnet wird, wird die vorherige Kauforder geschlossen.

Ich habe den Code OrderCloseBy() gefunden, aber ich weiß nicht genau, wo ich diesen Code einfügen soll.

danke

 
darkkiller:
Hallo, ich möchte eine Anfrage für einen Code stellen, der bei Eröffnung einer neuen Position automatisch die vorherige Order schließt, d.h. ich möchte keinen Take Profit oder Trailling verwenden.

Beispiel:

Wenn der Kaufauftrag offen ist, wird der vorherige Verkaufsauftrag geschlossen.

Wenn eine Verkaufsorder offen ist, wird die vorherige Kauforder geschlossen.

Ich habe den Code OrderCloseBy() gefunden, aber ich weiß nicht genau, wo ich diesen Code einfügen soll.

Danke

Problem lösen

nach OrderSend BUY setzen

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // Position schließen

}

nach OrderSend SELL einfügen

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Violett); // Position schließen

}

Anderer Code, den ich von ForexFactory erhalten habe, dank (Fulltime247, magnumfreak)

extern int MAGICTerminal=101;

extern double LOTSize=0.10;

extern string ORDERComment="Order Kommentar Text";

//TOTAL Count..

int btotal=0; int stotal=0; int ticket=0; double closelots=0; bool xbool;

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

{

xbool=OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderMagicNumber()==MAGICTerminal && OrderSymbol()==Symbol()){btotal++; ticket=OrderTicket(); closelots=OrderLots();}

if(OrderType()==OP_SELL && OrderMagicNumber()==MAGICTerminal && OrderSymbol()==Symbol()){summe++; ticket=OrderTicket(); closelots=OrderLots();}

}// ENDE GESAMTZAHL..

if(WAS IMMER IHRE BEDINGUNGEN FÜR EINEN KAUF)

{

if(btotal>0){OrderClose(ticket,closelots,Bid,3,CLR_NONE);}

ticket=OrderSend(Symbol(),OP_BUY,LOTSize,Ask,3,0,0,ORDERComment,MAGICTerminal,0,Magenta);

}

if(WAS IMMER IHRE BEDINGUNGEN FÜR EINEN VERKAUF)

{

if(stotal>0){OrderClose(ticket,closelots,Ask,3,CLR_NONE);}

ticket=OrderSend(Symbol(),OP_SELL,LOTSize,Bid,3,0,0,ORDERComment,MAGICTerminal,0,Lime);

}
 
 

Ich bin neu bei MT4.

Ich möchte die Anzahl der Bars berechnen, nachdem shortMA longMA gekreuzt hat, weiß jemand, wie man diese Funktion codiert?

Vielen Dank im Voraus!

Grund der Beschwerde: