[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 896

 
belck:

Voglio impostare un take profit in questo modo:

if (TakeProfit<10*Point) TakeProfit=10*Point;
La linea dell'indicatore cambia la sua posizione dopo un certo periodo di tempo. Come posso fare in modo che il take profit non cambi, ma rimanga lo stesso impostato quando l'ho aperto?
Di solito il TP è calcolato al momento dell'inserimento dell'ordine - poi sarà assegnato all'ordine e bisogna cambiarlo usando OrderModify(), a volte il TP è virtuale, in questo caso bisogna salvarlo nell'array
 
IgorM:
Non posso nemmeno indovinare perché calcoli il TP. Di solito il TP è calcolato al momento di piazzare l'ordine - poi sarà assegnato all'ordine e devi cambiarlo usando OrderModify(), a volte il TP è virtuale, poi lo memorizzi in un array

Grazie per il suggerimento.

 

Ho appena creato un EA, continuo ad allenarmi, tutto diventa ogni volta più veloce, ma non fa trading!

Se potete, per favore consigliatemi, penso che mi metterò in contatto.

//+------------------------------------------------------------------+
//| I confini di Dimon .mq4 |
//| Copyright © 2010, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, MetaQuotes Software Corp.
#proprietà link "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'esperto |
//+------------------------------------------------------------------+
extern int BandsPeriod=20,i=1 ;extern int BandsShift=0;
extern double BandsDeviations=2.0;
extern double Lots=0.1,TakeProfit=50,stoploss=10;
int init()
{int Media;
//----

//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| funzione di deinizializzazione esperto |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| funzione di inizio esperto |
//+------------------------------------------------------------------+
int start()
{double Average, Upper Border, Lower Border, newres, sum, deviation;

Media=iMA(NULL,0,BandsPeriod,BandsShift,MODE_SMA,PRICE_CLOSE,i);
//----
newres=Close[i]-Media;
sum=newres*newres;


deviazione=BandsDeviations*MathSqrt(sum/BandsPeriod);
Limite superiore=Media+deviazione;
Limite inferiore=Media+deviazione;
//----
se (Confine superiore<Chiusura[i])
{ Comment(" boa! ",Upper Boundary );
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*Point,Ask+TakeProfit*Point, "macd sample",16384,0,Green);

}


se (Limite inferiore>Close[i])
{ Comment(" sell! ",Bottom Border );

OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+stoploss*Point,Bid-TakeProfit*Point, "macd sample",16384,0,Red);
}
ritorno(0);
}
//+------------------------------------------------------------------+

Mi scuso per le variabili non inglesi, è molto più facile per me ricordare cosa fare.

 
VOLDEMAR:
Ciao! Non riesco a capire cosa c'è di sbagliato in ???? Non modifica l'ordine di mercato
slb =NormalizeDouble(Bid - (StopLoss * Point),Digits); // calcolo dello stop per le posizioni di acquisto//
tpb =NormalizeDouble(Ask + (TakeProfit* Point),Digits); //calcolare il profitto per le posizioni di acquisto//
sls =NormalizeDouble(Ask + (StopLoss * Point),Digits); //calcolare lo stop per le posizioni di vendita//
tps =NormalizeDouble(Bid - (TakeProfit* Point),Digits);

//================================================== ==================//
int total=OrdersTotal();
int n=0;
per (int i=totale-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS))
{
se(OrderSymbol()==Symbol())
{
n++;
}}}
se ( totale == 1 )
{
per (int k=totale-1; k>=0; k--)
{
if(OrderSelect(k, SELECT_BY_TICKET))
Alert("l'ordine esiste", k);
{
se ((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(OderStopLoss()==0))
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue);
Alert("error", GetLastError());

}}}}
return(0);}

QUAL È IL PROBLEMA PER FAVORE AIUTATE ...........?????

si può ancora provare così:

double TakeProfitBuy = NormalizeDouble((three - zero) / 4, Digits);
if (TakeProfitBuy<10*Point) TakeProfitBuy=10*Point;
double TakeProfitSell = NormalizeDouble((zero - two) / 4, Digits);
if (TakeProfitSell<25*Point) TakeProfitSell=25*Point;
 

Qual è il modo migliore:

- specificare nell'advisor su quali coppie e in quale periodo fare trading

o

- lanciare un EA su un grafico di una coppia di valute con il necessario timeframe preimpostato

??

 

Solo un'altra cosa - per favore non fate i furbi, sto scrivendo in anticipo, altrimenti non è molto piacevole.

La risposta a questa domanda è molto importante per me, quindi per favore prendila seriamente.

 
Secondo me, la seconda opzione è molto più pratica e conveniente.
 

Decidersi e decidere su una soluzione prescelta.

Sono anche incline all'idea di buttare un EA sulle coppie di valute richieste, o di scriverne uno per certe coppie di valute.

Sono anche incline all'opzione di buttarla su.

Per quanto riguarda il gusto del trader, non è così importante scegliere un Expert Advisor.

 
Capito, molto intelligente. Non sono un esperto, ma la seconda opzione è molto più facile.
 
L'Expert Advisor non funziona, non fa trading per niente.