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

 
alsu:

Prendi lo script period_converter e modifica la condizione di ritaglio delle candele a tuo piacimento, e sarai felice. Per esempio, a colpo d'occhio, per ottenere candele per x ore e 10 minuti:

sostituire con

o qualcosa del genere)))


Grazie per l'idea geniale! Ho provato tutto quello che mi è venuto in mente, ma la logica dello script mi sfugge.

Lecandele orarie con coeff=1 sono sempre identiche all'originale, ma l'output ci si avvicina :(
if(time0>=i_time+periodseconds && TimeMinute(time0)==10 || i==0)
// и
if(time0>=i_time+periodseconds +60*10 || i==0)
// и
if(TimeMinute(time0)==10 || i==0)
// тоже

Come spostare l'apertura della candela dell'ora nello script Period_converter di 10 minuti? Devo fare dei cambiamenti nella fase di registrazione della storia?

 
artmedia70:

Eh... Sono otto anni che non voglio più prendere alcool - non mi interessa... :)

Grazie per esserti preoccupato della tua salute ;)


Sei sempre il benvenuto.

Io no, e non un alcol qualsiasi, ma... un sacco di altre cose. Io stesso sono uno scout di salute attivo.

 
Operr:


Grazie per la brillante idea! Ho provato tutto quello che mi è venuto in mente, ma la logica dello script mi sfugge.

Gliorologi con coeff=1 nell'offline sono sempre identici all'originale, ma l'uscita è da qualche parte vicina :(

Come posso spostare l'apertura della candela dell'ora nello script Period_converter di 10 minuti? È necessario cambiare il passo di registrazione della storia?


hmm... eseguire lo script su minuti)
 

Buon pomeriggio,

Potresti dirmi come mettere un marcatore sul grafico? Per esempio, l'ordine non si è aperto, ma almeno per vedere sul grafico, a che punto avrebbe dovuto aprirsi.

Vorrei vedere sui grafici dove si sarebbe dovuto aprire.

 
Come faccio a far sì che (se il trade precedente era un trade di acquisto) il prossimo sia aperto per la vendita? Grazie in anticipo.
 
KoOr:
Come faccio a far sì che (se il trade precedente era un trade di acquisto) il prossimo sia aperto per la vendita? Grazie in anticipo.
Fate un giro nella storia. Se il tipo dell'ultima posizione chiusa == OP_BUY, allora dovreste aprire OP_SELL
 

L'ho scritto così, ma si apre ancora per l'acquisto.

OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY);
if(OrdersTotal()==OP_BUY)
if(OrdersTotal()==0)
if(rv1a<rv1b) tiket2=OrderSend(Symbol(),OP_SELL,lot,Bid,3,0,0,NULL,121,0,Red);
 
KoOr:

L'ho scritto così, ma si apre ancora per l'acquisto.

if(OrdersTotal()==OP_BUY)

Qui dice "se il numero di ordini è uguale a un'operazione di acquisto". Cosa vuoi dire?
 

Non pretendo di essere un esperto, ho appena iniziato a capire qualcosa io stesso, ma questa procedura è in quasi tutti i consulenti CODE BASE !!!!

Dichiarare CloseRevers all'inizio

extern bool CloseRevers = true;

// Questo è posto nel controllo dopo il segnale ma prima di OrderSend

se (CloseRevers) CLOSEORDER(OP_SELL);

se (CloseRevers) CLOSEORDER(OP_BUY);

void CLOSEORDER(int ord)

{

per (int i=0; i<OrdersTotal(); i++)

{

se (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) // <-----MODE_HISTORY se il trade è già stato chiuso

{

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

{

se (OrderType()==OP_BUY && ord==OP_BUY)

OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),3,CLR_NONE);

se (OrderType()==OP_SELL && ord==OP_SELL)

OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3,CLR_NONE);

}

}

}

}

Di conseguenza, se avete già un'operazione chiusa, controllate con MODE_HISTORY (invece di MODE_TRADES)

Spero che sia stato d'aiuto....

 
Cioè, se il trade precedente era un trade di acquisto, il prossimo è un trade di vendita. Aiutatemi a capire bene, grazie.
Motivazione: