Come codificare? - pagina 153

 
Roger09:
A chiwing

Provate questo:

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

cambia in

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

 

GetClientRect?

Come devo fare se voglio acquisire le coordinate client del grafico?

Voglio conoscere le coordinate in basso a destra senza usare OBJPROP_CORNER.

I miei migliori saluti.

 

Eu h1 ea

per favore aiutatemi a modificare il migliore

 

Aiuto con la logica

Ciao a tutti,

Vorrei un piccolo aiuto con un po' di logica del codice. Sto cercando di costruire un EA di un sistema che sto guardando ma sono un po' perplesso su come scrivere la logica per i segnali di acquisto e vendita. Ecco la pseudo logica di ciò che voglio trasformare in MQL:

LOGICA DI ACQUISTO:

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

La logica di vendita è solo l'opposto della logica di acquisto.

Non ho bisogno del codice EA completo, ma solo della logica convertita in istruzioni 'IF' e 'LOOP' MQL per elaborare il segnale. Penso di poter capire il codice OpenOrder ecc... da molti esempi già presenti in questo thread.

Qualsiasi aiuto che qualcuno può dare sarebbe molto apprezzato.

Grazie,

Moxy

 

La cosa migliore è guardare nel file di aiuto del metaeditor.

Dai un'occhiata a funzioni come iMa, iStochastic e iCCI. Hanno degli esempi e se li combini con le informazioni che otterrai guardando il codice in qualsiasi EA lo troverai facile.

Buona fortuna

Lux

 
luxinterior:
La cosa migliore è cercare nel file di aiuto del metaeditor.

Dai un'occhiata a funzioni come iMa, iStochastic e iCCI. Hanno degli esempi e se li combini con le informazioni che otterrai guardando il codice in qualsiasi EA lo troverai facile.

Buona fortuna

Lux

Ciao Lux,

Grazie per la risposta. Posso elaborare le singole dichiarazioni iMA ecc... il problema che ho è come fare riferimento alle diverse barre temporali una volta che un segnale viene attivato. Per esempio... Se ho un segnale GET READY ho bisogno di guardare le 2 barre prima e le 2 barre dopo (5 barre in totale) per gli altri indicatori per confermare che ho un segnale di acquisto all'apertura della barra successiva. Non sono sicuro che abbia senso!

Credo di sì... come potrei strutturare i necessari FOR loops ecc. quando ho bisogno di fare riferimento a barre sia prima che dopo la barra in elaborazione.

Saluti,

Moxy

 
Moxy:
Ciao Lux,

Grazie per la risposta. Posso elaborare le singole istruzioni iMA ecc... il problema che ho è come fare riferimento alle diverse barre temporali una volta che un segnale è stato attivato. Per esempio... Se ho un segnale GET READY ho bisogno di guardare le 2 barre prima e le 2 barre dopo (5 barre in totale) per gli altri indicatori per confermare che ho un segnale di acquisto all'apertura della barra successiva. Non sono sicuro che abbia senso!

Credo di sì... come potrei strutturare i necessari FOR loops ecc. quando ho bisogno di fare riferimento alle barre sia prima che dopo la barra in elaborazione.

Per quanto mi riguarda,

Moxy

Lo fai usando la variabile shift in iMA(). Puoi anche farlo con i valori Open, High, Low, Close cioè Close[3] che è a 3 barre dalla barra corrente.

 

Media mobile delle mosse

Ok ho bisogno di un po' di aiuto con il codice, sto cercando di determinare una serie di mosse medie intorno ad una MA, quindi dalla BAR più vecchia, cerco le mosse sopra e sotto, le metto in un array e poi faccio la media.

Ecco il codice con cui sto iniziando, cercando un po' di assistenza per portarlo a termine.

doppio 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++)

{

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

pValue = Alto[ndx];

pLValue = Basso[ndx];

se(MAvalue pLValue)

{

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

reset = true;

if(EntryPoint > 0 && cHigh > 0)

{

RangeCounter++;

RangeValue[RangeCounter]=cHigh - EntryPoint;

}

if(EntryPoint > 0 && cLow > 0)

{

RangeCounter++;

RangeValue[RangeCounter]=EntryPoint - cLow;

}

EntryPoint = MAvalue;

}

if(pLValue < MAvalue && reset) TradeShort = true;

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

if(TradeLong)

{

reset = false;

cHigh = pHValue;

}

se(CommercioCorto)

{

reset = False;

cLow = pLValue;

}

}

ArraySetAsSeries(RangeValue,true);

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

Print("Average Move "+retval);

}

 

Vorrei conoscere l'area del cliente nel grafico.

Ciao,

Vorrei conoscere l'area del cliente nel grafico.

Per favore, consigliatemi.

Supponendo che il punto dell'angolo superiore sinistro sia (0,0), fatemi sapere le coordinate dell'angolo inferiore destro.

In questo caso, ObjectSet("",OBJPROP_CORNER,3) non dovrebbe essere usato.

Tanti ringraziamenti e saluti,

 

Moxy,

Se ho capito bene, allora dovrai codificare questa linea per linea in un EA.

esempio

MA1, indice-1 prima

MA1, indice ora

MA1, indice+1 dopo

hai la base lì