Wie programmiert man? - Seite 64

 

Vielen Dank für Ihre Antwort. Ist nicht ein Problem mit Argumenten, die Berechnung in der Schleife ist korrekt. Ich denke, das Problem ist mit dem zweiten Aufruf an iMAonArray außerhalb der Schleife in Funktion.

Mit freundlichen Grüßen

 

Der beste Weg, MaxBarsToCount (History) zum Limit hinzuzufügen

Wenn wir MaxBarsToCount (History) begrenzen, ist es manchmal erforderlich, Korrekturen hinzuzufügen, etc.

Gibt es den besten (sichersten, einfachsten, universellen) Weg?

----------------------

wie hier haben wir leichte Fischer 4 stoch smothing:

----------

int start()

{

int counted_bars=IndicatorCounted();

//---- Prüfung auf mögliche Fehler

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

int limit=Balken-gezählt_Balken;

if(limit>maxbars)limit=maxbars;

if(limit>Balken-lenth-1)limit=Balken-lenth-1;

//----

for (int shift = limit; shift>=0;shift--)

{

AuxBuffer[shift]=(iStochastic(NULL,0,lenth,2,1,MODE_SMA,0,MODE_MAIN,shift)/100-0.5)

+0.5*AuxBuffer[shift+1];

FischPuffer[shift]= 0,25* MathLog((1+AuxPuffer[shift])/(1-AuxPuffer[shift]))+

0.5*FishBuffer[shift+1];

SignalPuffer[shift]=FischPuffer[shift+1];

}

//----

return(0);

}

------------------------

für Fischer-Limit f-la:

int limit;

int gezählte_Balken=IndicatorCounted();

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

limit=Balken-gezählt_balken;

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

{

....

für Stoch:

int start()

{

int i,k;

int gezählte_Balken=IndicatorCounted();

double Preis;

//----

if(Bars<=draw_begin2) return(0);

//---- anfänglicher Nullpunkt

if(counted_bars<1)

{

for(i=1;i<=draw_begin1;i++) MainBuffer=0;

for(i=1;i<=draw_begin2;i++) SignalBuffer=0;

}

//---- Minimalwertzählung

i=Balken-KPeriode;

if(gezählte_Takte>KPeriode) i=Takte-gezählte_Takte-1;

while(i>=0)

{

double min=1000000;

k=i+KPeriod-1;

while(k>=i)

{

price=Low[k];

if(min>Preis) min=Preis;

k--;

}

LowesBuffer=min;

i--;

}

....

p.s. im angehängten Indikator, basierend auf sauberer Fischer-Transformation und Stoch; MaxBars muss ein wenig begradigt werden... (wenn MaxBars aus - kein Problem)

 

Hallo!

vielen Dank an euch alle. Es funktioniert jetzt gut und es wird nur eine Order pro Bar geöffnet. Was ist schön mit einem EA wie dies ist, dass wir die"Open Preis nur" Option für Backtesting verwenden können, die schneller als die "pro Tick" ein ist.

 
Michel:
Hallo Omelette, wissen Sie, dass BT ein Problem hat, in die Historie zu schauen: es schaut auf die reale Historie, nicht auf die von BT. Ich habe Metaquote vor ein paar Monaten nach diesem Problem gefragt, aber sie hatten keine Antwort.... Vielleicht ist es jetzt behoben...

Michel, danke für die Warnung. Wow, das wusste ich nicht - und ich würde das als einen riesigen Fehler einstufen!!!

Um das zu überprüfen (mit MT 208), habe ich die OrdersHistoryTotal()-Informationen verwendet, um die Handelsrichtung bei einem Martingaler zu bestimmen, und bei einer anderen Version die "konventionellen Mittel" verwendet - die Equity-Kurve für beide "sollte" identisch sein. Das habe ich gefunden.........

Ich habe auch gerade mit dem neuesten Metatrader überprüft und der Fehler ist immer noch da - unglaublich.....

 

Brauche MQL Code

Hallo zusammen,

Ich brauche ein paar Codes, die ich in einen EA integrieren kann.

1) Ich brauche, um eine Einschränkung, um meine EA wie, es sollte nicht öffnen Sie eine Position zwischen 2:00 PM bis 5:00 PM. Wie kann ich das machen? Bitte geben Sie mir diesen einfachen Code und sagen Sie mir, wo ich ihn im EA platzieren kann.

2) Ich möchte keinen SL in EA setzen, um eine Position zu öffnen, weil der Broker den SL jagt. Also, ich brauche, um eine Prüfung auf EA, dass "wenn der Gesamtgewinn auf eröffnete Position ist +20 Punkte dann schließen Position".

Ich werde sehr dankbar für die Unterstützer sein, die immer andere Leute unterstützen!

Mit besten Grüßen,

Kashif.

 
oilfxpro:
.....Kann EA aktuelle und historische Swapsätze abrufen? OILFXPRO

Leider nicht.

PS - meine Antwort sieht missverständlich aus. Ich meinte, dass Sie keine historischen Swapsätze abrufen können - es ist kein Problem, aktuelle Sätze zu erhalten...

 

mehrere Aufträge gleichzeitig

Hallo,

ich möchte in einem Expert Advisor folgendes programmieren:

Ich möchte mehrere Orders gleichzeitig öffnen (3-6 Orders )

1. Order : Volumen; T/P; S/L; T/S

.

.

.

5. Bestellen : Volumen; T/P; S/L; T/S

Können Sie mir helfen?

Danke

derumuro

 

Ich muss etwas lernen.

Hallo zusammen

Ich brauche eine Programmierhilfe für einen einfachen Code, der ist:

Wenn der Marktpreis > MA Wert um Delta Pips öffnen kaufen.

Wenn der Marktpreis < MA Wert durch Delta Pips öffnen verkaufen.

Mit TP SL und TS. Kann mir ein erfahrener Programmierer zeigen, wie man den Code schreibt?

Ich danke Ihnen

 

Was muss ich tun, um diesen Code zu ändern, so dass die Aufträge nur geöffnet werden, wenn alle drei Indikatoren synchron sind entweder Aufwärtstrend (Blau) oder Abwärtstrend (Rot) manuell dies funktioniert gut und ist einfach genug für mich zu folgen LOL.

Ich habe eine alte ea als Vorlage verwenden und versucht, die indis hinzufügen, um die richtigen Signale zu erstellen. im Moment Aufträge sind entweder mit dem TM oder der HAS geöffnet.

Ich habe die ea und Leistung für die letzten paar Tage, die ich weiß, es bedeutet nicht hocken, aber es hat Potenzial. IMO

Könnte mir bitte jemand die richtige Richtung weisen.

Danke

Beno

 

Gibt es eine Möglichkeit, diese Include-Funktion so zu kodieren, dass es KEINE Chance gibt, dass sie in ihrer Schleife "stecken bleibt"?

int CBM(int intMagic)//CloseByMagic

{

int intOffset=0;

while(OTBM(intMagic)>0)

{

OrderSelect(intOffset,SELECT_BY_POS);

if(OrderMagicNumber()==intMagic)

{

if(OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),999,Red);

if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),999,Orange);

}

else {

intOffset++;

}

}

return(0);

}

Vielen Dank an alle, die helfen können.

Grund der Beschwerde: