Wie programmiert man? - Seite 230

 

die Charts von 2010 studieren

mit Ihrer Vorlage, um etwas zu erstellen -- über die Liga der Stochastik

wie wir unsere stochastischen Charts in den frühen Tagen verwendet haben -- gilt das immer noch für die 2010er Charts -- das sind echte Trader, Bud und du könntest seine Aufgaben haben -- ich stehe auf nicht-bandige Lebesgue-Integral-Mathematik-Programmierung -- erinnere dich an den Film She's Out of My League --- gute Arbeit bedeutet gute Bezahlung -----

Lesen Sie die Codes -- etwas weniger ausgefeilt als der aktuelle Investitionsstil im Jahr 2010

 
scottyb:
Ich habe so ziemlich jede mögliche Kombination des verfluchten Klammerfehlers ausprobiert, den ich beim Kompilieren bekomme. Ich habe mir das Problem viele Stunden lang angesehen, aber kein Glück bei der Behebung. Ich habe es bis zu einem Abschnitt des Codes festgenagelt, was das Skript vermasselt. Hat jemand einen Rat für mich, was falsch ist (abgesehen davon, dass ich ein Idiot bin).

void ScanForClosure ()

{

int cash = OrderProfit() + OrderSwap() + OrderCommission()

int MacdCurrent, MacdPrevious, SignalCurrent;

int SignalPrevious, MaCurrent, MaPrevious;

int total2 = OrdersTotal();

int numords2 = 0;

bool type = false;

int trd2 = 0;

MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);

MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);

SignalCurrent=iMACD(NULL,0,12,26,9,PREIS_SCHLIESSEN,MODE_SIGNAL,0);

SignalPrevious=iMACD(NULL,0,12,26,9,PREIS_SCHLIESSEN,MODE_SIGNAL,1);

MaCurrent=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,0);

MaPrevious=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,1);

ArrayResize(lastOrders,5);

ArrayInitialize(lastOrders,0);

//

for(int cnt=0; cnt<total2; cnt++)

{

OrderSelect(cnt, SELECT_BY_POS);

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) ;

{

wenn ((OrderType()==OP_BUY)&&

(MacdCurrent>0)&&

(MacdCurrent<SignalCurrent)&&

(Bargeld > 0)&&

(MacdPrevious>SignalPrevious) && MacdCurrent>(MACDCloseLevel*Point));

{

CloseOrder(1);

}

if ((OrderType()==OP_SELL)&&

(Cash > 0)&& (MacdCurrent<0 ) &&

(MacdCurrent>SignalCurrent)&&

(MacdPrevious<SignalPrevious)&&

(MathAbs(MacdCurrent))>(MACDCloseLevel*Point));

{

CloseOrder(2);

}

}

}

}

Hallo Scotty,

ich kopiere aus dem macd-Beispiel

if(OrderType()==OP_BUY)

{

if(MacdCurrent>0 && cash > 0 && MacdCurrentSignalPrevious &&

MacdCurrent>(MACDCloseLevel*Point))

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);

return(0);

}

sonst

{

if(MacdCurrent 0 && MacdCurrent>SignalCurrent &&

MacdPrevious(MACDCloseLevel*Point))

{

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

return(0);

}

Mit freundlichen Grüßen

Werkzeuge

 
forextrend:
warum gibt dieser Code den Fehler der falschen Parameteranzahl:

for(int i = 0;i < 3;i++)

{

kline = iStochastic(NULL,TimeFrame1, Period(), 4, 3, 3, MODE_SMA, 1, MODE_MAIN, i);

dline = iStochastic(NULL,TimeFrame1, Period(), 4, 3, 3, MODE_SMA, 1, MODE_SIGNAL, i);

}

Sollte sein

int counted_bars = IndicatorCounted();

int limit,i;

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

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

limit = Balken - gezählte_Balken;

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

{

kline = iStochastic(NULL,TimeFrame1, 4, 3, 3, MODE_SMA, 1, MODE_MAIN, i);

dline = iStochastic(NULL,TimeFrame1, 4, 3, 3, MODE_SMA, 1, MODE_SIGNAL, i);

Mit freundlichen Grüßen

Werkzeuge

 

Danke Herr Tools, vielleicht habe ich es zu kompliziert gemacht, aber was war daran falsch? Wird das gepostete Beispiel alle offenen Tickets scannen? Ich würde denken, es würde nur scannen 2 (ein einzelnes kaufen ein und ein einzelnes verkaufen), höchstwahrscheinlich das gleiche jedes Mal :/ Ich bin sehr neu in diesem mt4 Programmierung, aber ich bin sicher, dass ist, was passieren würde.

 

Ich habe es herausgefunden

Es ist erstaunlich, dass man 10 Stunden lang auf dasselbe Problem starrt und es nicht lösen kann. Ich hatte einen anderen Blick auf sie. Als ich aufgewacht bin, habe ich es in 5 Stunden gelöst. Anscheinend ist der MT4-Code sehr eng gefasst. Sie scheinen zu brauchen, um Code genau das, was seine Suche nach (ob oder nicht Sie tun können, die genau die gleiche Sache in 10 anderen Sprachen und Arbeit)

Ich habe Bots für World of Warcraft erstellt, um einen Charakter in einem Spiel selbst herumlaufen zu lassen, um Dinge ausfindig zu machen und zu töten, aber wenn ich versuche, eine einfache Kauf-Verkaufs-Routine in MT4 zu erstellen, habe ich Schwierigkeiten.

Wie auch immer, die Lektion für mich war, dass man das, was man in eine Zeile schreibt, mit einem "if" begrenzen sollte. Hoffentlich erspare ich ein paar anderen den Schmerz, den ich hatte.

OrderSelect(cnt, SELECT_BY_POS);

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

{

if (OrderType()==OP_BUY)

wenn (Gewinn>0)

if (MacdCurrent<SignalCurrent)

wenn (MacdCurrent>0)

wenn (MacdPrevious>SignalPrevious)

wenn (MacdCurrent>(MACDCloseLevel*Point))

{

CloseOrder(1);

}

if (OrderType()==OP_SELL)

wenn ((MacdCurrent<0 ) )

wenn (Gewinn >0 )

wenn (MacdCurrent>SignalCurrent)

wenn (MacdPrevious<SignalPrevious)

wenn (MathAbs(MacdCurrent) >(MACDCloseLevel*Point))

 

Code-Hilfe - Fraktale

Hallo zusammen,

Ich bin auf der Suche nach etwas Hilfe für den Code, der benötigt wird, um das Folgende als Teil eines Systems zu tun, an dem ich arbeite:

Gültig lang wenn:

(nummeriert älteste bis jüngste 1-x)

-> Fraktal zeigt nach unten 1 höher als Fraktal nach unten 2

-> Fraktal Up 1 wird gebildet und schafft die Break-Long Möglichkeitsbedingung, jedoch

-> Fraktal Down 3 muss höher sein als Fraktal Down 2

-- Damit ist die Trendwende bestätigt. Ein Kursausbruch über das obere Fraktal wäre ein gültiges TRUE. Wenn ein neues, niedrigeres oberes Fraktal gebildet wird, ist dies der neue Bruchpunkt, es sei denn, es gibt ein niedrigeres Fraktal Down als das vorherige Fraktal Down. Die unteren Fraktale sollten höhere Hochs bilden.

Umgekehrt gilt dies für die Short-Validierung.

Prost

Aaron

 

Ich möchte versuchen, es ein wenig besser zu erklären

Es gibt also einen Aufwärtstrend im Preis, ein oberes Fraktal wird gebildet. Der Kurs zieht sich zurück und es bildet sich ein unteres Fraktal. Der Kurs zieht sich weiter zurück, und es bildet sich ein weiteres, niedrigeres unteres Fraktal.

Dann steigt der Kurs und es bildet sich ein neues, unteres, oberes Fraktal.

Der Kurs zieht sich zurück und es bildet sich ein weiteres unteres Fraktal, das jedoch höher ist als das vorherige untere Fraktal.

Der Kurs durchbricht das vorherige obere Fraktal, eine gültige Break-Long-Bedingung.

PS Wenn ein neues, niedrigeres oberes Fraktal gebildet wird, die unteren Fraktale aber weiterhin höhere Höchststände erreichen, ist der neue Bruchpunkt das jüngste obere Fraktal.

PPS Wenn sich niedrigere untere Fraktale bilden, werden die Bedingungen zurückgesetzt, und wir suchen weiterhin nach den oben genannten Bedingungen oder den umgekehrten Bedingungen für eine Short-Bestätigung eines Bruchs.

Prost

Aaron

 

Und welche Hilfe bei der Programmierung benötigen Sie genau? Müssen Sie das ganze System programmieren lassen?

 

Nur der logische Teil.

Sagen wir ein bool, das ValidBuy = FALSE ist;

wenn die Bedingungslogik wie oben auftritt, wird sie auf TRUE gesetzt.

Ich bin sicher, es ist ein Array dann Vergleich Array-Werte, aber ich bin nicht so groß, wenn es um die Codierung der Arrays kommt.

Vielen Dank

Aaron

 

Sie brauchen keine Arrays zu verwenden. Erstellen Sie einfach eine Funktion, die die Ebene des gegebenen Fraktals findet, und rufen Sie sie so auf:

double fractal = FindFractal( 0, MODE_LOWER );[/CODE]

first parameter being number of fractal (0-last, 1-one before last, etc.) and second parameter telling if you want upper or lower fractal.

Then, you can code like this:

[CODE]double last_lower_fractal = FindFractal( 0, MODE_LOWER );

double previous_lower_fractal = FindFractal( 1, MODE_LOWER );

if( last_lower_fractal > previous_lower_fractal )

{

//we have found that most recent lower fractal is higher than its predecessor, do rest of your logic here.

}

Grund der Beschwerde: