Chiedete! - pagina 77

 

A CodersGuru : bisogno di aiuto su 10 punti 3 EA....

Ciao CodersGuru,

Sono nuovo nel commercio del forex e nuovo anche in questo forum. La prima volta che sto imparando è EuroX2_sl, esteso da 10 punti 3 EA script. Dopo aver fatto alcuni test in avanti, questo EA ha aperto bene la posizione, ma non ha chiuso bene la posizione come ho bisogno di fare quando il mercato si inverte. Forse c'è qualcosa di sbagliato nel codice (perché non sono un programmatore) e credo di aver bisogno del vostro aiuto per risolverlo. Potreste controllare quale parte potrebbe essere sbagliata?

La condizione è:

1. APRIRE BUY quando esiste la condizione dell'indicatore. cioè: stocastico

2. CLOSE BUY quando esiste l'indicatore OPEN SELL. cioè: stocastico

3. APRIRE VENDITA quando esiste la condizione dell'indicatore (n. 2 sopra). cioè: stocastico

4. CLOSE SELL come condizione dell'indicatore (n. 1 sopra) esiste. cioè: stocastico

Penso che la posizione OPEN sia ok ma il problema è con la POSIZIONE CLOSE in quanto non ha chiuso (BUY o SELL) anche quando l'indicatore esiste.

Il codice che ho fatto è :

-------- parte dello script da EuroX2_sl esteso da 10 punti 3 come penso per chiudere la posizione -------

// è importante entrare a mercato correttamente,

// ma è ancora più importante uscirne correttamente...

for(cnt=0;cnt<totale;cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()<=OP_SELL && // controlla la posizione aperta

OrderType()<=OP_BUY &&

OrderType()>=OP_SELL &&

TipoOrdine()>=OP_BUY &&

OrderSymbol()==Symbol()) // controllare il simbolo

{

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

if(OrderType()==OP_BUY) // la posizione lunga è aperta

{

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

//+ CONDIZIONE DI CHIUSURA DELLA POSIZIONE

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

//+--------------- CHIUDERE POSIZIONE BUY ----------------------------

if ( Stoch_Main_M15_Cu < Stoch_Sig_M15_Cu )

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

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet) ; // chiudere la posizione

return(0); // uscire

}

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

//controllare il trailing stop

se(TrailingStop>0)

{

if(Bid-OrderOpenPrice()>Point*TrailingStop)

{

if(OrderStopLoss()<Bid-Point*TrailingStop)

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);

return(0);

}

}

}

}

//+---------------CLOSE VENDERE LA POSIZIONE --------------------------------

else // vai alla posizione short

{ //+ NON RIMUOVERE

if(OrderType()==OP_SELL) // la posizione short è aperta

{

}

// deve essere chiusa?

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

if ( Stoch_Main_M15_Cu > Stoch_Sig_M15_Cu )

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

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet) ; // chiudere la posizione

return(0); // uscire

}

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

//controllare il trailing stop

se(TrailingStop>0)

{

if((OrderOpenPrice()-Ask)>(Point*TrailingStop))

{

se((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);

return(0);

}

}

}

}

}

}

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

Grazie,

fxgroup

 

Leggere i dati da un'altra finestra della coppia di valute

Il mio EA è sulla finestra "GBPJPY", ma ho bisogno di trovare ObjectDescription() da un'altra finestra, diciamo "USDJPY". (Sfortunatamente, è un indicatore Pivot che non restituisce valori da iCustom())

Qualcuno conosce il modo di fare riferimento a un'altra finestra di coppia (non corrente) per poter utilizzare funzioni come ObjectDescription() su di essa?

O MQ4 non lo permette?

Grazie

euro

 

Come posso isolare i profitti di una valuta dalle altre?

color color_of_pipsprofit;

color_of_pipsprofit = White;

int m,totalbuy;

totalbuy=OrdersTotal();

for(m=0;m<totalbuy;m++)

OrderSelect(m, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber() == Reference)

{

pips_profit=OrderProfit();

}

if(pips_profit >= 0)

{

color_of_pipsprofit = Lime;

}

else {color_of_pipsprofit = Red;

}

int n,totalsell;

totalsell=OrdersTotal();

for(n=0;n<totalsell;n++)

OrderSelect(n, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber() == Reference)

{

pips=OrderProfit();

}

if(pips_profit >= 0)

{

color_of_pipsprofit = Lime;

}

else {color_of_pipsprofit = Red;

}

ObjectCreate("pips_profit", OBJ_LABEL, 0, 0, 0);

ObjectSetText("pips_profit",DoubleToStr(pips_profit,2),14, "Verdana", color_of_pipsprofit);

ObjectSet("pips_profit", OBJPROP_CORNER, 3);

ObjectSet("pips_profit", OBJPROP_XDISTANCE, 35);

ObjectSet("pips_profit", OBJPROP_YDISTANCE, 20);

}

Ho creato questo codice, ma non riesco a isolare i profitti di una valuta dalle altre valute scambiate. Cosa mi manca nel mio codice?

Si prega di rivedere. Grazie per il vostro aiuto!

Dave

 

Profitto

Prova questo codice:

int start()

{

int total = OrdersTotal();

for (int cnt = total ; cnt >=0 ; cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

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

{

Print(Profit(OrderType(),OrderSymbol(),OrderOpenPrice());

}

}

return(0);

}

double Profit(int type, string currency, double open)

{

if(type==OP_BUY) return((MarketInfo(currency,MODE_BID) - open) / MarketInfo(currency,MODE_POINT) ); //case buy

if(type ==OP_SELL) return((open - MarketInfo(currency,MODE_ASK)) / MarketInfo(currency,MODE_POINT)); //case buy

return(-1);

}[/php]

1Dave7:
[php]

color color_of_pipsprofit;

color_of_pipsprofit = White;

int m,totalbuy;

totalbuy=OrdersTotal();

for(m=0;m<totalbuy;m++)

OrderSelect(m, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber() == Reference)

{

pips_profit=OrderProfit();

}

if(pips_profit >= 0)

{

color_of_pipsprofit = Lime;

}

else {color_of_pipsprofit = Red;

}

int n,totalsell;

totalsell=OrdersTotal();

for(n=0;n<totalsell;n++)

OrderSelect(n, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber() == Reference)

{

pips=OrderProfit();

}

if(pips_profit >= 0)

{

color_of_pipsprofit = Lime;

}

else {color_of_pipsprofit = Red;

}

ObjectCreate("pips_profit", OBJ_LABEL, 0, 0, 0);

ObjectSetText("pips_profit",DoubleToStr(pips_profit,2),14, "Verdana", color_of_pipsprofit);

ObjectSet("pips_profit", OBJPROP_CORNER, 3);

ObjectSet("pips_profit", OBJPROP_XDISTANCE, 35);

ObjectSet("pips_profit", OBJPROP_YDISTANCE, 20);

}

I created this coding, but I cannot isolate the profits of one currency from other currencies being traded. What am I lacking in my code??

Please review. Thanks for your help!

Dave
 
codersguru:
Prova questo codice:
int start()

{

int total = OrdersTotal();

for (int cnt = total ; cnt >=0 ; cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

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

{

Print(Profit(OrderType(),OrderSymbol(),OrderOpenPrice());

}

}

return(0);

}

double Profit(int type, string currency, double open)

{

if(type==OP_BUY) return((MarketInfo(currency,MODE_BID) - open) / MarketInfo(currency,MODE_POINT) ); //case buy

if(type ==OP_SELL) return((open - MarketInfo(currency,MODE_ASK)) / MarketInfo(currency,MODE_POINT)); //case buy

return(-1);

}

Ciao Coder,

Questo non era esattamente ciò di cui ho bisogno. Sto allegando un'immagine del grafico per illustrare ciò che sto cercando. Puoi modificare il codice per visualizzare il Profitto? Se è così, posso far cambiare i colori all'importo del profitto. Sto solo cercando il profitto per ogni specifica valuta.

 

indicatore allegato

Ciao Codersguru

desidero che l'indicatore allegato mostri l'apertura a mezzanotte gmt, e non il tempo del server dei broker, è possibile?

molte grazie monty

 

Aiuto con il codice

Puoi passare attraverso il codice? Sto ottenendo un valore errato (vedi sotto "Account") e poi viene popolato correttamente ma non sono sicuro del perché.

int Account = 123456;

if (Account != AccountNumber())

{

Comment("Non è possibile utilizzare questo programma con questo account");

return (0);

}

else

{

Comment("Benvenuto nel programma");

}

 

Domanda semplice

L'expert advisor funzionerà normalmente senza le funzioni init() e deinit()?

 
n7drazen:
L'expert advisor funzionerà normalmente senza le funzioni init() e deinit()?

Si,

è necessaria solo la funzione start.

 

Kalenzo,

Ho una domanda:

HEDGING:

Sto cercando:

se (OrderOpenPrice() = = Bid (o Ask)

Ilprezzo aperto deve essere uguale al nuovo prezzo.

Faccio hedging con la stessa coppia EURUSD.

Se il prezzo aperto è vendere e il prezzo è 1,3580,

il prezzo di acquisto deve essere lo stesso.

Grazie. Ecco i codici.

B.

//------------------------------------------

if(Buy==0)

{

RefreshRates();

OrderSend(Symbol_1,OP_BUY,lotsi,MarketInfo(Symbol_ 1,MODE_ASK),...

RefreshRates();

se (OrderOpenPrice() == Bid)

{

OrderSend(Symbol_1,OP_SELL,lotsi,MarketInfo(Symbol _1,MODE_BID),...

}