Chiedete! - pagina 74

 
WNW:
Voglio eseguire i miei EAs da un VPS.

Per motivi di sicurezza voglio codificare il mio numero di conto di intermediazione e caricare la versione compilata.

Qualcuno può descrivere il codice da aggiungere?

Grazie.

Il codice è qui (nella prima pagina di questo thread https://www.mql5.com/en/forum/174194 ).

Inoltre c'è l'EA nella sezione elite con la protezione dell'account codificata.

1. MA_ExpertProfit.mq4: è lo stesso EA ma chiuderà gli ordini solo in s/l o t/p.

2. MA_ExpertProfit_all.mq4: chiuderà l'ordine su s/l o t/p, o sull'altro segnale di incrocio. Questo EA dovrebbe funzionare solo su un particolare conto. Basta cambiare la linea "int Account = 111111;" con il tuo numero di conto all'interno del codice. Per esempio il tuo conto è 1235463. Quindi questa linea dovrebbe essere come questa:

int Account = 1235463;

3. MA_ExpertProfit_noacc.mq4: è lo stesso del punto 2. Ma senza alcun conto e può funzionare in qualsiasi conto (intendo conto in Metatrader).

Se non sei un membro d'élite posso postare i codici qui, ma è un argomento molto conosciuto e descritto qui in pubblico: https://www.mql5.com/en/forum/174194

Più difficile è creare il numero di licenza, impostare il broker,

UserVerification(Confirmed)

e così via.

Come so che alcuni codificatori sono molto professionali con questi problemi di priotecting così si può vedere da questo thread https://www.mql5.com/en/forum/174194

 

Numero magico

int j,totalbuy;

totalbuy=OrdersTotal();

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

OrderSelect(j, SELECT_BY_POS, MODE_TRADES);

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

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

return(0);

}

Come si fa riferimento al numero magico nella chiusura di cui sopra. Allo stesso modo, in un ordine di acquisto? Grazie in anticipo per rispondere!

Dave

<<<

 
int j,totalbuy;

totalbuy=OrdersTotal();

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

OrderSelect(j, SELECT_BY_POS, MODE_TRADES);

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

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

return(0);

}
 

Grazie per aver risposto!

Dave

 

Domanda sul flusso logico

Come faccio a rimbalzare tra le istruzioni logiche se si scopre che devo tornare indietro ad una certa istruzione logica precedente fino a quando una condizione è soddisfatta, e se è soddisfatta allora dovrò passare ad un'altra istruzione logica ancora precedente?

So che in simple basic, userei una dichiarazione goto.

Dave <<<
 

Cambio di colore nella dichiarazione ObjectCreate

Sto cercando di cambiare il colore di visualizzazione del profitto da Lime a Red in base al profitto dei biglietti. Mi sono imbattuto nelle parole riservate Lime e Red e non riesco a capire come cambiare questi colori nell'istruzione ObjectSetText.

string Lime;

string Red;

string PlusMinusColor = "";[/PHP]

if (BuyProfit+SellProfit>=0) PlusMinusColor=Lime;

if (BuyProfit+SellProfit<0) PlusMinusColor=Red;[/PHP]

[PHP]

Profit1=BuyProfit+SellProfit;
[PHP] ObjectSetText("Profit1", DoubleToStr(Profit1,2), 16, "Arial",PlusMinusColor );

Qualcuno può aiutarmi su questo?

Dave <<<

Grazie per tutto l'aiuto - dico davvero!

 

Mostrare il profitto o la perdita in grandi lettere sul grafico

L'ho capito!

 
double BP(j)=0,BP=0,SP=0;[/PHP]

[PHP]int j,TotalOrders;

TotalOrders=OrdersTotal();

for(j=0;j<TotalOrders;j++)

OrderSelect(j, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber() == OrderID && OrderCloseTime() == 0)

{

BP(j) = OrderProfit() + OrderSwap() + OrderCommission();//BuyProfit - GETTING ERRORS ABOUT BP(j)

}

else

if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber() == OrderID && OrderCloseTime() == 0)

{

SP(j)= OrderProfit() + OrderSwap() + OrderCommission();//SellProfit - GETTING ERRORS ABOUT SP(j).

}

BuyProfit=BuyProfit+BP(j); // GETTING ERRORS!

SellProfit=SellProfit+SP(j); // GETTING ERRORS!

return(0);

Ho provato a codificare questo, ma come si può vedere non è del tutto corretto.

Uno di voi bravi codificatori può darmi una mano a sistemare questo????

Dave <<<
 
1Dave7:
double BP(j)=0,BP=0,SP=0;[/php][php]int j,TotalOrders;

TotalOrders=OrdersTotal();

for(j=0;j<TotalOrders;j++)

OrderSelect(j, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber() == OrderID && OrderCloseTime() == 0)

{

BP(j) = OrderProfit() + OrderSwap() + OrderCommission();//BuyProfit - GETTING ERRORS ABOUT BP(j)

}

else

if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber() == OrderID && OrderCloseTime() == 0)

{

SP(j)= OrderProfit() + OrderSwap() + OrderCommission();//SellProfit - GETTING ERRORS ABOUT SP(j).

}

BuyProfit=BuyProfit+BP(j); // GETTING ERRORS!

SellProfit=SellProfit+SP(j); // GETTING ERRORS!

return(0);

Ho provato a codificare questo, ma come si può vedere non è del tutto corretto.

Uno di voi bravi codificatori può darmi una mano a sistemare questo????

Dave <<<

Se vuoi che "BP" sia un array, allora devi usare le parentesi "[ ]" non la parantesi "( )" come in:

BP[j]

... non ...

BP(j)

... che sembra una chiamata di funzione.

 

Problema di profitto.

Qualcosa di semplice su cui ho bisogno di aiuto.

double EntryPoint = 1.000;

int MiniLots = 1;

Valuta chiusa a .880

Ho provato quanto segue per ottenere un valore di profitto senza successo:

Profit=EntryPoint*MiniLots - ( ho provato a sottrarre Ask, Bid, Close[0]) *100;

Tutto quello che ottengo è Profit=0.00 quando dovrei ottenere Profit=12.00. Sono confuso?

Non mi stupirebbe che la risposta sia perché il mercato è chiuso?

Che cosa dite per quanto riguarda il mio problema con questo?

Dave <<<