Come codificare? - pagina 266

 
ixbone:
Ciao a tutti,

Voglio raccogliere tutti gli ordini (buy&sell) di una coppia per magia e se raggiungono un pareggio, tutti gli ordini dovrebbero essere chiusi.

qualsiasi guida è benvenuta, grazie

extern bool PairBreakeven=true;// Breakeven per coppia tutti gli ordini della stessa coppia/magia

extern double Pairbreakevengain=6;// guadagno in pip richiesto per abilitare il break even

extern double Pairbreakeven=3;// break even, ordine chiuso, 3 pip profit/slippage

doppio Pairmovebreakeven;

if(PairBreakeven==true){

if(Pairbreakevengain>0)Pairmovebreakeven(Pairbreakevengain,Pairbreakeven);

CloseBuyOrders(Magic);

CloseSellOrders(Magic);

}

void Pairmovebreakeven(double Pairbreakevengain,double Pairbreakeven){

RefreshRates();

if(OrdiniTotali()>0){

for(int i=OrdersTotal();i>=0;i++){

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

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

return;

}

}

}

}

int CloseBuyOrders(int Magic){ //op_sell è simile

int total=OrdersTotal();

for(int cnt=totale-1;cnt>=0;cnt--){

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if(OrderMagicNumber()==Magico && OrderSymbol()==Simbolo()){

if(OrderType()==OP_BUY){

OrderClose(OrderTicket(),OrderLots(),Bid,3*mt);

}

}

}

return(0);

}

Il problema principale con questo codice è nella funzione BE, non si è mai veramente spostato stop o intraprendere alcuna azione. Se non dichiari la tua intenzione a parole, non posso davvero rilevare ciò che stai cercando di fare qui dal codice.

Vuoi che il codice rilevi tutti gli ordini sul tuo conto che hanno uno stop loss = prezzo di apertura dell 'ordine e li chiuda tutti? Quindi l'azione di break even è fatta da un altro EA? Vorrei aiutare ma non riesco a capire cosa vuoi fare.

 
christinaLi:
Il problema principale di questo codice è nella funzione BE, non si è mai veramente spostato stop o intraprendere alcuna azione. Se non dichiari la tua intenzione a parole, non riesco a capire cosa stai cercando di fare dal codice. Vuoi che il codice rilevi tutti gli ordini sul tuo conto che hanno uno stop loss = prezzo di apertura dell'ordine e li chiuda tutti? Quindi l'azione di break even è fatta da un altro EA? Vorrei aiutarti ma non riesco a capire cosa vuoi fare.

ChristinaLi,

scusate, per il mio fuorviante.

-voglio raccogliere tutti gli ordini di una coppia per magia e riassumere i profitti di tutti gli ordini, indipendentemente da buy, sell, tp, sl, esempio: abbiamo 8 ordini buy & sell, il profitto riassunto è di 6 pips // extern double Pairbreakevengain=6;// guadagno in pips necessario per consentire il break even

-se il profitto è di +6 pip per tutti gli ordini di una coppia (buy&sell), tutti gli ordini (buy/sell) sl devono essere impostati stoploss a currentprice -3 //extern double Pairbreakeven=3;// break even, ordine chiuso, 3 pip di profitto/slippage

-se Pairbreakevengain scende dal profitto di tutti gli ordini di una coppia esempio: 8 ordini misti buy/sell profitto è somma 6 torna a 3, tutti gli ordini sono chiusi

Ho un modulo che funziona correttamente per un singolo ordine breakeven e ho provato a modificarlo da solo, sono carente in materia di codice mt4, molti anni fa, ho imparato l'assembler...

Devo postare la funzione di ordine singolo breakeven?

Grazie per l'aiuto

IX

 

Ciao, IX,

So cosa stai cercando di fare adesso. Si può fare.

Le cose sono un po' complicate dal fatto che potresti avere acquisti e vendite allo stesso tempo. Perché quando parli di "prezzo corrente", per gli acquisti significa Bid, per le vendite significa Ask, perché solo quelli sono prezzi realistici per chiudere gli ordini. Quindi puoi vedere che in qualsiasi momento, quando regoli lo stop loss per i tuoi ordini, le compravendite hanno un prezzo diverso. Se il tuo spread non è costante, ci sono molte possibilità che i tuoi ordini non vengano chiusi allo stesso tempo, a volte è possibile che la metà dei tuoi ordini non venga chiusa.

Penso che il buon modo per fare questo sia di non spostare effettivamente lo stop loss, invece l'EA attiverà una memoria una volta che il profitto complessivo di 6 pips è raggiunto, poi semplicemente chiuderà tutti gli ordini a mercato mentre il profitto complessivo scende a 3 pips. In questo caso, l'EA costringe a chiudere gli ordini, non vengono fermati da MT4.

 
christinaLi:
Ciao, IX,

So cosa state cercando di fare ora. Si può fare.

Le cose sono un po' complicate dal fatto che potreste avere acquisti e vendite allo stesso tempo. Perché quando si parla di "prezzo corrente", per gli acquisti significa Bid, per le vendite significa Ask, perché solo quelli sono prezzi realistici per chiudere gli ordini. Quindi puoi vedere che in qualsiasi momento, quando regoli lo stop loss per i tuoi ordini, le compravendite hanno un prezzo diverso. Se il tuo spread non è costante, ci sono molte possibilità che i tuoi ordini non vengano chiusi allo stesso tempo, a volte è possibile che la metà dei tuoi ordini non venga chiusa.

Penso che il modo migliore per farlo sia quello di non spostare effettivamente lo stop loss, invece l'EA attiverà una memoria una volta raggiunto il profitto complessivo di 6 pip, poi semplicemente chiuderà tutti gli ordini a mercato mentre il profitto complessivo scende a 3 pip. In questo caso, l'EA costringe a chiudere gli ordini, non vengono fermati da MT4.

Ciao ChristinaLi,

sono d'accordo al 100%, è troppo complicato, capisco quello che vuoi dire, forse un calcolo di coppia (paniere) senza spostare uno stoploss è la soluzione, come:

- selezionare tutti gli ordini per coppia e magia

- riassumere il profitto di tutti gli ordini

- se la somma dei profitti è = 6pips

- chiudere tutti gli ordini, se non c'è slippage, il pareggio sarà 6pips "profitto", se slippage 3pips risultato per il pareggio è 3pips "profitto"

1) il vantaggio è: nessun problema

2) svantaggio: non c'è spazio (3pips) per tutti gli ordini, se ho 7 ordini di acquisto e 6 di vendita con copertura, se l'ordine di acquisto aumenta di 6 pips, tutti gli ordini vengono chiusi, c'è un'opzione per segnare tutti gli ordini in memoria per essere chiusi se 6 pips raggiunti (breakeven=true) con una diminuzione di 3pips (6-3= 3pips di profitto) (breakevencloseorders=true)?

Gli ordini 7buy e 6sell hedged non possono salire oltre i 6 pip con #1, sono sempre chiusi.

Con #2, 6 pip sono solo un indicatore di attivazione, se scendono a 3 pip, chiudi tutti gli ordini, se salgono oltre i 6 pip, per esempio a 15 pip, c'è spazio da +3pips fino a 15pips che si traduce in un profitto di 12 pip

lo spread non è calcolato in questo momento! perché 7buys & 6sells riassumono con 2pips di spread a 26pips per raggiungere il pareggio "0" deve avere per un ordine di acquisto e per avere 32 pips con #1 e 29 pips deve avere con #2 per un ordine di acquisto - ho ragione?

grazie per i vostri suggerimenti

IX

 
ixbone:
Ciao ChristinaLi,

Sono d'accordo al 100%, è troppo complicato, capisco quello che volete dire, forse un calcolo di coppia (paniere) senza spostare uno stoploss è la soluzione, come:

- selezionare tutti gli ordini per coppia e magia

- riassumere il profitto di tutti gli ordini

- se la somma dei profitti è = 6pips

- chiudere tutti gli ordini, se non c'è slippage, il pareggio sarà 6pips "profitto", se slippage 3pips risultato per il pareggio è 3pips "profitto"

1) il vantaggio è: nessun problema

2) svantaggio: non c'è spazio (3pips) per tutti gli ordini, se ho 7 ordini di acquisto e 6 di vendita con copertura, se l'ordine di acquisto aumenta di 6 pips, tutti gli ordini vengono chiusi, c'è un'opzione per segnare tutti gli ordini in memoria per essere chiusi se 6 pips raggiunti (breakeven=true) con una diminuzione di 3pips (6-3= 3pips di profitto) (breakevencloseorders=true)?

Gli ordini 7buy e 6sell hedged non possono salire oltre i 6 pip con #1, sono sempre chiusi.

Con #2, 6 pip sono solo un indicatore di attivazione, se scendono a 3 pip, chiudi tutti gli ordini, se salgono oltre i 6 pip, per esempio a 15 pip, c'è spazio da +3pips fino a 15pips che si traduce in un profitto di 12 pip

lo spread non è calcolato in questo momento! perché 7buys & 6sells riassumono con 2pips di spread a 26pips per raggiungere il pareggio "0" deve avere per un ordine di acquisto e per avere 32 pips con #1 e 29 pips deve avere con #2 per un ordine di acquisto - ho ragione?

grazie per i vostri suggerimenti

IX

Penso che tu mi abbia frainteso, quello che vuoi può essere accuratamente realizzato, solo che non c'è una modifica effettiva dello stop loss. Troverò un po 'di tempo per fare il codice oggi e dimostrare per voi. Christina

 
ixbone:
Ciao ChristinaLi,

Sono d'accordo al 100%, è troppo complicato, capisco quello che volete dire, forse un calcolo di coppia (paniere) senza spostare uno stoploss è la soluzione, come:

- selezionare tutti gli ordini per coppia e magia

- riassumere il profitto di tutti gli ordini

- se la somma dei profitti è = 6pips

- chiudere tutti gli ordini, se non c'è slippage, il pareggio sarà 6pips "profitto", se slippage 3pips risultato per il pareggio è 3pips "profitto"

1) il vantaggio è: nessun problema

2) svantaggio: non c'è spazio (3pips) per tutti gli ordini, se ho 7 ordini di acquisto e 6 di vendita con copertura, se l'ordine di acquisto aumenta di 6 pips, tutti gli ordini vengono chiusi, c'è un'opzione per segnare tutti gli ordini in memoria per essere chiusi se 6 pips raggiunti (breakeven=true) con una diminuzione di 3pips (6-3= 3pips di profitto) (breakevencloseorders=true)?

Gli ordini 7buy e 6sell hedged non possono salire oltre i 6 pip con #1, sono sempre chiusi.

Con #2, 6 pip sono solo un indicatore di attivazione, se scendono a 3 pip, chiudi tutti gli ordini, se salgono oltre i 6 pip, per esempio a 15 pip, c'è spazio da +3pips fino a 15pips che si traduce in un profitto di 12 pip

lo spread non è calcolato in questo momento! perché 7buys & 6sells riassumono con 2pips di spread a 26pips per raggiungere il pareggio "0" deve avere per un ordine di acquisto e per avere 32 pips con #1 e 29 pips deve avere con #2 per un ordine di acquisto - ho ragione?

grazie per i vostri suggerimenti

IX

In realtà, ora che ci ho pensato un po' di più, quello che hai chiesto non può essere fatto.

Questo è piuttosto interessante, ho codificato un sacco di funzioni simili, è possibile calcolare BE intern di importo in dollari o pips, ma sono tutti lo stesso tipo di ordine. Non può essere fatto sia con gli acquisti che con le vendite. Per esempio, se hai x acquisti (possono essere diversi lotti), ad un certo punto, tutti i profitti in dollari sommati insieme sono 0, quindi ora sei a BE. Quindi se sono acquisti, se vuoi 3 pip in profitto, allora semplicemente aggiungi 3 pip all'attuale Bid, quindi hai un prezzo target. se sono tutte vendite, sottrai 3 pip dall'attuale Ask, quindi hai un prezzo target. Ma se hai sia acquisti che vendite, cosa fai? aggiungi o sottrai?

Come si fa a definire di avere 3 pip di profitto nella seguente situazione? 1 lotto di acquisto a 1.4100, 2 lotti di vendita a 1.4150?

L'unica cosa che si può fare è usare il profitto in dollari, non in pip, credo.

 
christinaLi:
Penso che tu mi abbia frainteso, quello che vuoi può essere accuratamente realizzato, solo che non c'è una modifica effettiva dello stop loss. Troverò un po 'di tempo per fare il codice oggi e dimostrare per voi. Christina

Grazie Christina,

apprezzo molto la tua conoscenza!

Michael

 
christinaLi:
In realtà, ora che ci ho pensato un po' di più, quello che hai chiesto non si può fare.

Questo è piuttosto interessante, ho codificato un sacco di funzioni simili, è possibile calcolare BE intern di importo in dollari o pip, ma sono tutti lo stesso tipo di ordine. Non può essere fatto sia con gli acquisti che con le vendite. Per esempio, se hai x acquisti (possono essere diversi lotti), ad un certo punto, tutti i profitti in dollari sommati insieme sono 0, quindi ora sei a BE. Quindi se sono acquisti, se vuoi 3 pip in profitto, allora semplicemente aggiungi 3 pip all'attuale Bid, quindi hai un prezzo target. se sono tutte vendite, sottrai 3 pip dall'attuale Ask, quindi hai un prezzo target. Ma se hai sia acquisti che vendite, cosa fai? aggiungi o sottrai?

Come si fa a definire di avere 3 pip di profitto nella seguente situazione? 1 lotto di acquisto a 1.4100, 2 lotti di vendita a 1.4150?

L'unica cosa che si può fare è usare il profitto in dollari, non quello in pip, credo.

Christina,

Aggiungere o sottrarre non ha importanza, perché la somma dei lotti di 7 ordini di acquisto contro 6 di vendita è sufficiente per raggiungere profitti normali, BE per tutti gli ordini di una coppia dovrebbe funzionare come una funzione di sicurezza:

Con questa funzione di copertura, si risparmia un sacco di margine, con passi tra come 50 pips, il tuo conto non può essere spazzato via, se i profitti normali non vengono raggiunti, BE dovrebbe chiudere tutti gli ordini e iniziare con un nuovo segnale e il primo ordine.

Per il segnale di acquisto/vendita uso la price action.

File:
unbenannt.png  7 kb
 
ixbone:
Cristina,

Aggiungere o sottrarre non ha importanza, perché la somma del lotto di 7 ordini di acquisto contro 6 ordini di vendita sono sufficienti per raggiungere profitti normali, BE per tutti gli ordini di una coppia dovrebbe funzionare come una funzione di sicurezza:

Con questa funzione di copertura, si risparmia un sacco di margine, con passi tra come 50 pip, il tuo conto non può essere spazzato via, se i profitti normali non vengono raggiunti, BE dovrebbe chiudere tutti gli ordini e iniziare con un nuovo segnale e primo ordine.

Per il segnale di acquisto/vendita uso la price action.

Informazioni aggiuntive:

- commercio 8-10 major allo stesso tempo per la diversificazione (in parte correlazione), quindi è meglio commerciare 10 coppie con 0,01 come una coppia con 0,1

- raddoppio i miei passi tra gli ordini di, 25,50,100,200,400,

esempio:

1° ordine 1,5000

2° ordine 1,5025

3°.........1.050

4°.........1.100

e così via

 

Vorrei aiutare con questa funzione di cui parli, ma sembra che non riesca semplicemente a capire la tua logica. Questo non ha davvero nulla a che fare con l'altra logica della strategia.

Vorrei semplicemente sapere questo.

Se hai 1 lotto di acquisto a 1.4110 e 2 lotti di vendita a 1.4200. A quale prezzo pensi di avere 6 pips di guadagno?