Wie programmiert man? - Seite 153

 
Roger09:
Zu chiwing

Versuchen Sie dies:

#property copyright "Copyright ?2004, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net/"

#property show_inputs

bool result;

extern double OverSymbolDel = 1; //0:FASLE ; 1: TRUE

//+------------------------------------------------------------------+

//| script "delete pending order" |

//+------------------------------------------------------------------+

int start()

{

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

{

OrderSelect(number,SELECT_BY_POS,MODE_TRADES);

if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) continue;

if (OverSymbolDel ==0&& Symbol()==OrderSymbol() ) delPending();

if (OverSymbolDel ==1) delPending();

}

}

//+------------------------------------------------------------------+

void delPending()

{

OrderPrint();

int ticket =OrderTicket();

result=OrderDelete(ticket);

if (!result) Print("Error when delete Order ", GetLastError() );

}

if ( (OverSymbolDel ==0 ) && (Symbol()==OrderSymbol() ) delPending();

Ändern in

if ( (OverSymbolDel ==0 ) && (Symbol()==OrderSymbol() )) delPending();

 

GetClientRect???

Wie sollte ich vorgehen, wenn ich die Client-Koordinaten des Diagramms ermitteln möchte?

Ich möchte die unteren rechten Koordinaten wissen, ohne OBJPROP_CORNER zu verwenden.

Mit freundlichen Grüßen.

 

Eu h1 ea

Bitte helfen Sie mir, die beste Lösung zu finden.

 

Hilfe bei Logik

Hallo zusammen,

Ich möchte ein wenig Hilfe mit einigen Code-Logik. Ich versuche, einen EA eines Systems zu bauen, das ich mir anschaue, aber ich bin ein wenig verwirrt, wie man die Logik für Kauf- und Verkaufssignale schreibt. Hier ist die Pseudo-Logik von dem, was ich will, um in MQL zu machen:

KAUF-LOGIK:

If (MA_1 > MA_2) and (Previous(MA_1 < MA_2)) // A moving average cross mean we have a "GET READY" signal

// Once we have a "GET READY" signal the following conditions need to be true

// in order for the system to create a "BUY_SIGNAL".

// Note: the following conditions do not necessarily have to become true on the exact same bar,

but need to trigger true within + or - 2 bars of the "GET READY" bar.

( CLOSE > MA3 ) // Price closes above a MA

( CCI Crosses above the ZERO line ) // CCI crosses up above zero

( Fast Stochastic crosses above Slow Stochastic ) // Stochastic triggers to the up side

Die Verkaufslogik ist genau das Gegenteil der Kauflogik.

Ich brauche keinen vollständigen EA-Code, sondern nur die in MQL umgewandelte Logik mit 'IF'- und 'LOOP'-Anweisungen, um das Signal auszuarbeiten. Ich denke, ich kann herausfinden, die OpenOrder-Code etc... aus vielen Beispielen bereits in diesem Thread.

Jede Hilfe, die jemand geben kann, würde sehr geschätzt werden.

Vielen Dank!

Moxy

 

Am besten schauen Sie in der Hilfedatei des Metaeditors nach.

Schauen Sie sich Funktionen wie iMa, iStochastic und iCCI an. Dort finden Sie Beispiele, und wenn Sie diese mit den Informationen kombinieren, die Sie beim Betrachten des Codes in einem beliebigen EA erhalten, werden Sie es leicht finden.

Viel Erfolg!

Lux

 
luxinterior:
Am besten schauen Sie in der Hilfedatei des Metaeditors nach.

Schauen Sie sich Funktionen wie iMa, iStochastic und iCCI an. Sie enthalten Beispiele, und wenn Sie diese mit den Informationen kombinieren, die Sie beim Betrachten des Codes in jedem EA erhalten, werden Sie es leicht finden.

Viel Erfolg!

Lux

Hallo Lux,

vielen Dank für die Antwort. Ich kann die einzelnen iMA-Anweisungen usw. ausarbeiten. Das Problem, das ich habe, ist, wie man die verschiedenen Zeitbalken referenziert, sobald ein Signal ausgelöst wird. Zum Beispiel... Wenn ich ein GET READY-Signal habe, muss ich mir die 2 Balken davor und die 2 Balken danach (insgesamt 5 Balken) für die anderen Indikatoren ansehen, um zu bestätigen, dass ich ein KAUFSIGNAL bei der Eröffnung des nächsten Balkens habe. Ich bin mir nicht sicher, ob das Sinn macht!

Ich denke schon... wie würde ich die notwendigen FOR-Schleifen usw. strukturieren, wenn ich mich auf Balken vor und nach dem zu verarbeitenden Balken beziehen muss.

Mit freundlichen Grüßen,

Moxy

 
Moxy:
Hallo Lux,

Vielen Dank für die Antwort. Ich kann die einzelnen iMA-Anweisungen usw. ausarbeiten. Das Problem, das ich habe, ist, wie man die verschiedenen Zeitleisten referenziert, sobald ein Signal ausgelöst wird. Zum Beispiel... Wenn ich ein GET READY-Signal habe, muss ich mir die 2 Balken davor und 2 Balken danach (insgesamt 5 Balken) für die anderen Indikatoren ansehen, um zu bestätigen, dass ich ein KAUFSIGNAL bei der Eröffnung des nächsten Balkens habe. Ich bin mir nicht sicher, ob das Sinn macht!

Ich denke schon... wie würde ich die notwendigen FOR-Schleifen usw. strukturieren, wenn ich auf Balken vor und nach dem zu verarbeitenden Balken verweisen muss.

Meine Grüße,

Moxy

Sie tun dies, indem Sie die Shift-Variable in iMA() verwenden. Sie können dies auch mit den Werten Open, High, Low, Close machen, z.B. Close[3], der 3 Bars vom aktuellen Bar entfernt ist.

 

Gleitender Durchschnitt der Bewegungen

Ok brauchen ein bisschen Hilfe mit Code, ich bin auf der Suche, um eine Reihe von durchschnittlichen Bewegungen um einen MA zu bestimmen, so dass von der ältesten BAR, ich für die Bewegungen über und unter suchen, setzen Sie sie in ein Array dann Durchschnitt, dass Array.

Hier ist der Code, mit dem ich anfange, und ich suche ein bisschen Unterstützung, um es zu schaffen.

double AverageMove()

{

int cbars = iBars(Symbol(),EntryTimeFrame);

int counted_bars = 0,RangeCounter=0,ndx=0,iLimit=0;

double retval,averagemove,pHValue,pLValue,MAvalue,RangeValue[],EntryPoint,cHigh,cLow;

bool reset,TradeShort,TradeLong;

iLimit=Bars-1;

if(Symbol() != "AUDNZD") return(0);

for(ndx=0; ndx<iLimit; ndx++)

{

MAWert = iMA(Symbol(),EntryTimeFrame,EntryMAInterval,0,MovingAverageType,PRICE_MEDIAN,ndx);

pHWert = Hoch[ndx];

pLValue = Low[ndx];

if(MAvalue pLValue)

{

if(Symbol() =="AUDNZD") Print("MAValue="+MAvalue+" pHValue="+pHValue+" plValue="+pLValue);

zurücksetzen = true;

if(EntryPoint > 0 && cHigh > 0)

{

BereichZähler++;

RangeValue[RangeCounter]=cHigh - EntryPoint;

}

if(EntryPoint > 0 && cLow > 0)

{

RangeCounter++;

RangeValue[RangeCounter]=EntryPoint - cLow;

}

EntryPoint = MAWert;

}

if(pHWert < MAWert && reset) TradeShort = true;

if(pLValue > MAvalue && reset) TradeLong = true;

if(TradeLong)

{

zurücksetzen = falsch;

cHigh = pHWert;

}

if(TradeShort)

{

reset = False;

cLow = pLValue;

}

}

ArraySetAsSeries(RangeValue,true);

retval=iMAOnArray(RangeValue,RangeCounter,13,1,PRICE_MEDIAN,0);

Print("Durchschnittliche Bewegung "+retval);

}

 

Ich möchte den Kundenbereich in der Tabelle kennen.

Guten Tag,

Ich möchte gerne den Kundenbereich im Diagramm kennen.

Bitte beraten Sie mich.

Angenommen, der Punkt der linken oberen Ecke ist (0,0), dann teilen Sie mir bitte die Koordinaten der rechten unteren Ecke mit.

In diesem Fall sollte ObjectSet("",OBJPROP_CORNER,3) nicht verwendet werden.

Vielen Dank und herzliche Grüße,

 

Moxy,

Wenn ich Sie richtig verstehe, dann müssen Sie dies Zeile für Zeile in einem EA codieren.

Beispiel

MA1, Index-1 vorher

MA1, Index jetzt

MA1, Index+1 danach

Sie haben die Basis dort