Dannato errore 130 all'inferno - pagina 2

 
cloudbreaker wrote >>

Posso affermare categoricamente che Seawolf e Ruptor stanno parlando a vanvera.

Per un ordine OP_BUY, è assolutamente corretto utilizzare il prezzo Ask per generare il prezzo di entrata e gli stop.

In realtà, Seawolf e Ruptor sono corretti.

Si entra in un ordine lungo al prezzo ASK e si esce al BID, invertite questo per un ordine di vendita. Poiché uno stop-loss o take-profit è un'uscita, devi usare il prezzo BID per calcolarli su un ordine lungo.

Questo è un punto di confusione abbastanza comune che viene spesso trascurato, specialmente quando si ha a che fare con piccoli spreads poiché non c'è molta differenza tra il prezzo ASK e BID. A volte il codice funziona bene se i vostri stop e slippage non sono troppo stretti, ma se state facendo scalping o qualsiasi altra cosa che richiede precisione, allora dovete usare queste linee guida per un prezzo corretto in entrata e uscita.

-

Per un ordine lungo, cioè OP_BUY, OP_BUYSTOP, o OP_BUYLIMIT:

Prezzo di entrata = ASK

Prezzo di uscita (stop-loss, take-profit, o OrderClose(...) ) = BID

-

Per un ordine corto, cioè OP_SELL, OP_SELLSTOP, o OP_SELLLIMIT:

Prezzo di entrata = BID

Prezzo di uscita (stop-loss, take-profit, o OrderClose(...) ) = ASK

-

Tovan

 
tovan:

In realtà, Seawolf e Ruptor sono corretti.

Si entra in un ordine lungo al prezzo ASK e si esce al BID, invertite la situazione per un ordine di vendita. Poiché uno stop-loss o un take-profit è un'uscita, devi usare il prezzo BID per calcolarli su un ordine lungo.

Questo è un punto di confusione abbastanza comune che viene spesso trascurato, specialmente quando si ha a che fare con piccoli spread, dato che non c'è molta differenza tra il prezzo ASK e BID. A volte il codice funziona bene se i vostri stop e slippage non sono troppo stretti, ma se state facendo scalping o qualsiasi altra cosa che richiede precisione, allora dovete usare queste linee guida per un prezzo corretto in entrata e uscita.

-

Per un ordine lungo, cioè OP_BUY, OP_BUYSTOP, o OP_BUYLIMIT:

Prezzo di entrata = ASK

Prezzo di uscita (stop-loss, take-profit, o OrderClose(...) ) = BID

-

Per un ordine corto, cioè OP_SELL, OP_SELLSTOP, o OP_SELLLIMIT:

Prezzo di entrata = BID

Prezzo di uscita (stop-loss, take-profit, o OrderClose(...) ) = ASK

-

Tovan

Capito, vedo esattamente quello che dici - e le più umili scuse a Seawolf e Ruptor.

Quando chiudo gli ordini normalmente o opero il mio stealth stoploss (che invoca semplicemente la mia normale funzione di chiusura degli ordini), sono pienamente consapevole di usare Bid per gli OP_BUY e Ask per gli OP_SELL.

Tuttavia, quando apro i miei ordini, ho sempre usato i prezzi di entrata come base per calcolare lo stoploss e non ho mai avuto problemi. Posso capire come la combinazione di uno spread largo e di uno stop stretto possa causare un errore di stop non valido.

Aggiungerei che ci sono un sacco di campioni che fanno come me.

Se non abbiamo stop stretti, credo che l'unica differenza tra le due tecniche che la maggior parte di noi tenderà a sperimentare è nel denaro effettivo fatto o perso, anche se, poiché entrambi i tipi di ordine verrebbero fermati "la quantità di spread prima", tenderebbero ad annullarsi a vicenda se lo spread fosse abbastanza stabile.

Questa logica è valida?

 
cloudbreaker wrote >>

Capito, capisco esattamente quello che stai dicendo - e le più umili scuse a Seawolf e Ruptor.

Quando chiudo gli ordini normalmente o opero il mio stealth stoploss (che richiama semplicemente la mia normale funzione di chiusura degli ordini), sono pienamente consapevole di usare Bid per gli OP_BUY e Ask per gli OP_SELL.

Tuttavia, quando apro i miei ordini, ho sempre usato i prezzi di entrata come base per calcolare lo stoploss e non ho mai avuto alcun problema. Posso capire come la combinazione di uno spread largo e di uno stop stretto possa causare un errore di stop non valido.

Aggiungerei che ci sono un sacco di campioni che fanno come me.

Se non abbiamo stop stretti, credo che l'unica differenza tra le due tecniche che la maggior parte di noi tenderà a sperimentare sia nel denaro effettivo fatto o perso, anche se, poiché entrambi i tipi di ordine verrebbero fermati "la quantità di spread prima", tenderebbero ad annullarsi a vicenda se lo spread fosse abbastanza stabile.

Questa logica è valida?

Ottimi punti. Sono d'accordo che ci sono molti altri EA là fuori che fanno nel modo che hai suggerito.

Questo illustra alcuni punti di vista diversi che abbiamo sullo stop-loss in base a come funzionano i nostri EA. Io, per esempio, tendo a impostare il mio stop-loss abbastanza stretto. Quindi sono generalmente più preoccupato di dove l'ordine fallirà piuttosto che di quanto perderei in caso contrario. D'altra parte, però, se foste più interessati a quanto perdereste (o guadagnereste) alla chiusura dell'ordine, allora avrebbe senso fare tutti i calcoli sul prezzo di apertura piuttosto che sul prezzo di chiusura. Questo diventa un problema solo se il tuo stop-loss o take profit è stretto (entro pochi pip, a seconda della coppia). In quel caso l'EA avrebbe bisogno di fare qualche controllo extra con MODE_STOPLEVEL (come hai suggerito sopra) per assicurarsi di poter effettivamente completare la transazione.

Stavo parlando per lo più da una posizione purista, ma posso vedere alcuni argomenti validi per l'esecuzione in entrambi i modi.

- Tovan

 
tovan:

Buoni punti. Sono d'accordo che ci sono molti altri EA là fuori che lo fanno nel modo che hai suggerito.

Questo illustra alcuni punti di vista diversi che abbiamo sullo stop-loss in base a come funzionano i nostri EA. Io, per esempio, tendo a impostare il mio stop-loss abbastanza stretto. Quindi sono generalmente più preoccupato di dove l'ordine fallirà piuttosto che di quanto perderei se accadesse. D'altra parte, però, se foste più interessati a quanto perdereste (o guadagnereste) alla chiusura dell'ordine, allora avrebbe senso fare tutti i calcoli sul prezzo di apertura piuttosto che sul prezzo di chiusura. Questo diventa un problema solo se il tuo stop-loss o take profit è stretto (entro pochi pip, a seconda della coppia). In quel caso l'EA dovrebbe fare qualche controllo extra con MODE_STOPLEVEL (come hai suggerito sopra) per assicurarsi che tu possa effettivamente completare la transazione.

Stavo parlando per lo più da una posizione purista, ma posso vedere alcuni argomenti validi per l'esecuzione in entrambi i modi.

- Tovan

Tovan è questo che è corretto perché ottengo anche un errore 130

if(OrderType()==OP_SELL && OrderSymbol()==Symbol())
{
if (OrderStopLoss()==0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
}
if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
{
if(OrderStopLoss()>(Ask+Point*TrailingStop)+Point)
{
if(!OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red))
Print("Error_Modify - ",GetLastError());
else str=StringConcatenate("\Il mio numero di ticket è ", OrderTicket(), " e il mio stop loss è ", DoubleToStr(Ask+Point*TrailingStop,Digits)); // nuovo codice
}
}
}
if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
{
if (OrderStopLoss()==0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
}

if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop-Point)
{
if(!OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green))
Print("Error_Modify - ",GetLastError());
else str=StringConcatenate("\Il mio numero di ticket è ", OrderTicket(), " e il mio stop loss è ", DoubleToStr(Bid-Point*TrailingStop,Digits)); // nuovo codice
}

}


l'errore 130 ha a che fare con l'entrata e l'uscita - o potrebbe essere a causa dello slippage

 

In realtà, sembra che tutti voi siate un po' confusi. Alcuni di voi stanno confondendo due cose completamente diverse.

Le domande da porre sono:

1) A che prezzo vengono eseguiti gli ordini Buy e Sell TP e SL. Bid o Ask?

2) Quale prezzo usiamo per calcolare i TP e SL per comprare e vendere. Bid o Ask?

tovan wrote >>

In realtà, Seawolf e Ruptor hanno ragione.

Si entra in un ordine lungo al prezzo ASK e si esce al BID, invertite la cosa per un ordine di vendita.

//---VANGROSH --- Corretto ma confuso. Meglio dire che l'ordine lungo TP o SL sarà eseguito quando il prezzo TP o SL == il prezzo BID. Questo è ciò che vedi quando guardi il tuo ordine colpire il TP o SL, ma questo non ha nulla a che fare con il modo in cui si calcolano quei prezzi.

Poiché uno stop-loss o un take-profit è un'uscita, devi usare il prezzo BID per calcolarli su un ordine lungo.

//---VANGROSH--- Scusa, è sbagliato. Stai confondendo ciò che vedi - quale prezzo farà scattare l'uscita - con il prezzo che usi per calcolare i prezzi TP e SL.

Pensaci un po' su. Prendiamo un ordine di acquisto. Siete tutti d'accordo che compriamo al prezzo ASK - nessun problema. Diciamo che il TP è di 15 punti su un ordine di acquisto e lo spread è di 5 punti. Se imposti il TP 15 punti sopra il prezzo BID, allora il tuo TP sarà solo 10 punti perché lo spread è SOTTO il prezzo ASK e SOPRA il prezzo BID. Non ha senso calcolare 15 punti di TP da un prezzo di 5 punti SOTTO il prezzo di entrata (ASK). Devi sempre calcolare il TP o SL dal prezzo a cui hai inserito l'ordine. ASK per comprare, BID per vendere.

È facile se pensi solo a quale prezzo il tuo TP o SL sarà colpito. Su un ordine BUY, entrando con il prezzo ASK, a quale prezzo il tuo TP verrà colpito? Al prezzo BID. Se il tuo TP era a 1.2450 e hai impostato il tuo TP dal prezzo ASK, allora quando la linea ASK è a 1.2450 ora stai iniziando a pagare lo spread. Solo quando la linea BID è a 1.2450 il tuo TP verrà colpito e il tuo ordine chiuderà con 15 punti di profitto.

Lo stesso vale per lo SL. Se il tuo SL è 30 punti significa 30 punti dal prezzo di entrata. In caso di acquisto il prezzo di entrata è ASK. Se usi il prezzo BID - 30 punti, allora stai escludendo lo spread nel tuo SL, quindi il tuo SL reale sarà in realtà 35 punti dal prezzo di entrata (ASK) perché il prezzo BID è 5 punti più basso (lo spread) del prezzo ASK. Avrai 35 punti di SL perché il tuo SL PRICE è ora 35 punti sotto il tuo ENTRY PRICE che era cosa per un ordine di acquisto?

Lo sto facendo solo da pochi mesi e ciò che mi ha aiutato è stato osservare a quale prezzo TP e SL vengono colpiti quando si fa trading manuale e poi per il mio primo EA, ho controllato due volte le mie linee TP e SL su un ordine EA aperto usando lo strumento crosshair e ho anche controllato i prezzi TP e SL su alcuni ordini EA chiusi per essere sicuro che i punti TP e SL fossero esatti.

L'unica volta che devi fare diversamente è per un trailing stop. Per un ordine di acquisto si usa il prezzo BID.

if(Bid-OrderOpenPrice() > Point*_trailingStop) StopLoss = Bid-Point*_trailingStop;

Perché vuoi che il tuo TS sia X punti sotto il prezzo che chiuderà l'ordine se colpito, che è il prezzo BID.

Per vendere si usa ASK.

se(OrderOpenPrice()-Ask > Point*_trailingStop) StopLoss = Ask+Point*_trailingStop;

Perché vuoi che il tuo TS sia X punti sopra il prezzo che chiuderà l'ordine se colpito, che è il prezzo ASK.

Ricorda che è il prezzo BID che chiuderà i tuoi ordini BUY TP e SL,

Ed è il prezzo ASK che chiuderà i tuoi ordini SELL TP e SL.

 
vangrosh:

In realtà, sembra che tutti voi siate un po' confusi. Alcuni di voi stanno confondendo due cose completamente diverse.

Le domande da porre sono:

1) A che prezzo vengono eseguiti gli ordini Buy e Sell TP e SL. Bid o Ask?

2) Quale prezzo usiamo per calcolare i TP e SL per comprare e vendere. Bid o Ask?

Pensaci un po' su. Prendiamo un ordine di acquisto. Siete tutti d'accordo che compriamo al prezzo ASK - nessun problema. Diciamo che il TP è di 15 punti su un ordine di acquisto e lo spread è di 5 punti. Se imposti il TP 15 punti sopra il prezzo BID, allora il tuo TP sarà solo 10 punti perché lo spread è SOTTO il prezzo ASK e SOPRA il prezzo BID. Non ha senso calcolare 15 punti di TP da un prezzo di 5 punti SOTTO il prezzo di entrata (ASK). Devi sempre calcolare il TP o SL dal prezzo a cui hai inserito l'ordine. ASK per comprare, BID per vendere.

È facile se pensi semplicemente a quale prezzo il tuo TP o SL sarà colpito. Su un ordine BUY, entrando con il prezzo ASK, a quale prezzo il tuo TP verrà colpito? Al prezzo BID. Se il tuo TP era a 1.2450 e hai impostato il tuo TP dal prezzo ASK, allora quando la linea ASK è a 1.2450 ora stai iniziando a pagare lo spread. Solo quando la linea BID è a 1.2450 il tuo TP verrà colpito e il tuo ordine chiuderà con 15 punti di profitto.

Lo stesso vale per lo SL. Se il tuo SL è 30 punti significa 30 punti dal prezzo di entrata. Su Buy il prezzo di entrata è ASK. Se usi il prezzo BID - 30 punti, allora stai escludendo lo spread nel tuo SL quindi il tuo SL reale sarà in realtà 35 punti dal prezzo di entrata (ASK) perché il prezzo BID è 5 punti più basso (lo spread) del prezzo ASK. Avrai 35 punti di SL perché il tuo SL PRICE è ora 35 punti sotto il tuo ENTRY PRICE che era cosa per un ordine di acquisto?

Lo sto facendo solo da pochi mesi e ciò che mi ha aiutato è stato osservare a quale prezzo TP e SL vengono colpiti quando si fa trading manuale e poi per il mio primo EA, ho solo controllato due volte le mie linee TP e SL su un ordine EA aperto usando lo strumento crosshair e ho anche controllato i prezzi TP e SL su alcuni ordini EA chiusi per essere sicuro che i punti TP e SL fossero esatti.

L'unica volta che devi fare diversamente è per un trailing stop. Per un ordine di acquisto si usa il prezzo BID.

if(Bid-OrderOpenPrice() > Point*_trailingStop) StopLoss = Bid-Point*_trailingStop;

Perché vuoi che il tuo TS sia X punti sotto il prezzo che chiuderà l'ordine se colpito, che è il prezzo BID.

Per vendere si usa ASK.

if(OrderOpenPrice()-Ask > Point*_trailingStop) StopLoss = Ask+Point*_trailingStop;

Perché vuoi che il tuo TS sia X punti sopra il prezzo che chiuderà l'ordine se colpito, che è il prezzo ASK.

Ricorda che è il prezzo BID che chiuderà i tuoi ordini BUY TP e SL,

Ed è il prezzo ASK che chiuderà i tuoi ordini SELL TP e SL.

Vangrosh

grazie per l'input

puoi aiutarmi a capire

è corretto

Faccio un EA con tracciamento automatico


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

{
if (OrderStopLoss()==0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red); // piazza un TP e un SL
}
if((OrderOpenPrice()-Ask)>(Point*TrailingStop)) // piazza il TP
{
if(OrderStopLoss()>(Ask+Point*TrailingStop)+Point) // controlla vero
{
if(!OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red)) // se vero modificare ordine
Print("Error_Modify - ",GetLastError());
else str=StringConcatenate("\n Il mio numero di ticket è ", OrderTicket(), " e il mio stop loss è ", DoubleToStr(Ask+Point*TrailingStop,Digits)); // nuovo codice
}
}
}
 
vangrosh:

In realtà, sembra che tutti voi siate un po' confusi. Alcuni di voi stanno confondendo due cose completamente diverse.

Le domande da porre sono:

1) A che prezzo vengono eseguiti gli ordini Buy e Sell TP e SL. Bid o Ask?

2) Quale prezzo usiamo per calcolare i TP e SL per comprare e vendere. Bid o Ask?

Pensaci un po' su. Prendiamo un ordine di acquisto. Siete tutti d'accordo che compriamo al prezzo ASK - nessun problema. Diciamo che il TP è di 15 punti su un ordine di acquisto e lo spread è di 5 punti. Se imposti il TP 15 punti sopra il prezzo BID, allora il tuo TP sarà solo 10 punti perché lo spread è SOTTO il prezzo ASK e SOPRA il prezzo BID. Non ha senso calcolare 15 punti di TP da un prezzo di 5 punti SOTTO il prezzo di entrata (ASK). Devi sempre calcolare il TP o SL dal prezzo a cui hai inserito l'ordine. ASK per comprare, BID per vendere.

È facile se pensi semplicemente a quale prezzo il tuo TP o SL sarà colpito. Su un ordine BUY, entrando con il prezzo ASK, a quale prezzo il tuo TP verrà colpito? Al prezzo BID. Se il tuo TP era a 1.2450 e hai impostato il tuo TP dal prezzo ASK, allora quando la linea ASK è a 1.2450 ora stai iniziando a pagare lo spread. Solo quando la linea BID è a 1.2450 il tuo TP verrà colpito e il tuo ordine chiuderà con 15 punti di profitto.

Lo stesso vale per lo SL. Se il tuo SL è 30 punti significa 30 punti dal prezzo di entrata. In caso di acquisto il prezzo di entrata è ASK. Se usi il prezzo BID - 30 punti, allora stai escludendo lo spread nel tuo SL quindi il tuo SL reale sarà in realtà 35 punti dal tuo prezzo di entrata (ASK) perché il prezzo BID è 5 punti più basso (lo spread) del prezzo ASK. Avrai 35 punti di SL perché il tuo SL PRICE è ora 35 punti sotto il tuo ENTRY PRICE che era cosa per un ordine di acquisto?

Lo sto facendo solo da pochi mesi e ciò che mi ha aiutato è stato osservare a quale prezzo TP e SL vengono colpiti quando si fa trading manuale e poi per il mio primo EA, ho controllato due volte le mie linee TP e SL su un ordine EA aperto usando lo strumento crosshair e ho anche controllato i prezzi TP e SL su alcuni ordini EA chiusi per essere sicuro che i punti TP e SL fossero esatti.

L'unica volta che devi fare diversamente è per un trailing stop. Per un ordine di acquisto si usa il prezzo BID.

if(Bid-OrderOpenPrice() > Point*_trailingStop) StopLoss = Bid-Point*_trailingStop;

Perché vuoi che il tuo TS sia X punti sotto il prezzo che chiuderà l'ordine se colpito, che è il prezzo BID.

Per vendere si usa ASK.

se(OrderOpenPrice()-Ask > Point*_trailingStop) StopLoss = Ask+Point*_trailingStop;

Perché vuoi che il tuo TS sia X punti sopra il prezzo che chiuderà l'ordine se colpito, che è il prezzo ASK.

Ricorda che è il prezzo BID che chiuderà i tuoi ordini BUY TP e SL,

Ed è il prezzo ASK che chiuderà i tuoi ordini SELL TP e SL.

Vangrosh, come ho accennato nella mia risposta a Tovan, finché sai esattamente cosa stai facendo, puoi farlo in entrambi i modi. Non siamo affatto confusi.

Cioè, dato che conosci il prezzo di entrata, il limite di stop del broker e lo spread, puoi ottenere lo stopploss 'assoluto' che vuoi (che non produrrà neanche 130 errori!) rendendolo 'relativo' alla domanda o all'offerta e regolandolo come necessario.

A proposito, preferisco farlo nel modo che hai descritto.

 
cloudbreaker wrote >>

Vangrosh, come ho accennato nella mia risposta a Tovan, finché sai esattamente cosa stai facendo, puoi farlo in entrambi i modi. Non siamo affatto confusi.

Cioè, dato che conosci il prezzo di entrata, il limite di stop del broker e lo spread, puoi ottenere lo stopploss 'assoluto' che vuoi (che non produrrà neanche 130 errori!) rendendolo 'relativo' alla domanda o all'offerta e regolandolo come necessario.

A proposito, preferisco farlo nel modo che descrivi.

Bene, Seawolf ha detto: "Regola empirica... se entri sull'ask, esci con il bid, se entri sul bid esci con l'ask".

Non è confuso? Non voglio dire che è confuso, voglio dire che per me il contesto in cui sta parlando non è chiaro. La sua regola del pollice non è corretta SE sta parlando di calcolare le uscite. Quando dico confuso non sto dicendo che voi ragazzi non sapete cosa state facendo o che non potete farlo in un altro modo - quello che volevo davvero dire è che il modo in cui stavano dando istruzioni era confuso. Per esempio, la precedente citazione di Seawolf è corretta se sta parlando di quale punto di prezzo gli ordini escono in MT. Penso che per qualcuno che sta imparando questo, devi essere molto chiaro su quale contesto ti stai riferendo, perché ci sono due contesti di base quando si insegna il TP e lo SL.

1) Il contesto o punto di vista che si concentra su quale prezzo (Bid o Ask) il TP e SL di un ordine aperto sarà colpito - che è una delle prime cose che ho dovuto imparare proprio per il trading manuale...

2) Il contesto o il punto di vista che non si concentra su #1 ma si concentra su quale prezzo (Bid o Ask) usiamo per calcolare i nostri TP e SL, SE vogliamo che i nostri prezzi TP e SL siano esatti e includano lo spread.

Guarda, anch'io sono un novellino ed è facile per me e per altri novellini confondersi se le cose ci vengono presentate in un modo in cui il contesto non è molto chiaro.

E io per primo non sapevo all'inizio che c'era più di un contesto in cui visualizzare TP e SL e molte altre cose che dobbiamo capire.

cloudbreaker ha scritto>>Vangrosh, come ho accennato nella mia risposta a Tovan, finché sai esattamente cosa stai facendo, puoi farlo in entrambi i modi .

Ecco perché stavo cercando di essere il più chiaro e contestuale possibile nel mio post. Le persone che stanno imparando come me non sanno esattamente cosa stanno facendo ed è per questo che abbiamo bisogno di essere istruiti sulle cose nel loro giusto contesto.

Nella mia esperienza sembra che molte volte ci viene data per scontata una conoscenza che ancora non abbiamo. Dobbiamo prima conoscere le regole di base e poi fare esperienza. Solo dopo sapremo quali sono le "regole" che possiamo piegare o da cui possiamo discostarci.

A proposito, non mi riferivo a te nel mio post. Ho pensato che le tue risposte fossero di gran lunga le più chiare e accurate. E a rischio di sembrare un "leccaculo", quando si tratta di ottenere le risposte più chiare e accurate su questo forum, i tuoi post sono alcuni di quelli che cerco per primi. Ci sono solo circa 4 o 5 persone su questo forum che ho trovato finora che hanno dimostrato di essere più costantemente accurate e che si può dire che in realtà hanno più di una piccola esperienza dietro di loro.

 
vangrosh:

Bene, Seawolf ha detto: "Regola empirica... se entri sull'ask, esci con il bid, se entri sul bid esci con l'ask".

Non è confuso? Non voglio dire che è confuso, voglio dire che per me il contesto in cui sta parlando non è chiaro. La sua regola del pollice non è corretta SE sta parlando di calcolare le uscite. Quando dico confuso non sto dicendo che voi ragazzi non sapete cosa state facendo o che non potete farlo in un altro modo - quello che volevo davvero dire è che il modo in cui stavano dando istruzioni era confuso. Per esempio, la precedente citazione di Seawolf è corretta se sta parlando di quale punto di prezzo gli ordini escono in MT. Penso che per qualcuno che sta imparando questo, devi essere molto chiaro su quale contesto ti stai riferendo, perché ci sono due contesti di base quando si insegna il TP e lo SL.

1) Il contesto o punto di vista che si concentra su quale prezzo (Bid o Ask) il TP e SL di un ordine aperto sarà colpito - che è una delle prime cose che ho dovuto imparare solo per il trading manuale...

2) Il contesto o il punto di vista che non si concentra su #1 ma si concentra su quale prezzo (Bid o Ask) usiamo per calcolare i nostri TP e SL, SE vogliamo che i nostri prezzi TP e SL siano esatti e includano lo spread.

Guarda, anch'io sono un novellino ed è facile per me e per altri novellini confondersi se le cose ci vengono presentate in un modo in cui il contesto non è molto chiaro.

E io per primo non sapevo all'inizio che c'era più di un contesto in cui visualizzare TP e SL e molte altre cose che dobbiamo capire.

cloudbreaker ha scritto>>Vangrosh, come ho accennato nella mia risposta a Tovan, finché sai esattamente cosa stai facendo, puoi farlo in entrambi i modi .

Ecco perché stavo cercando di essere il più chiaro e contestuale possibile nel mio post. Le persone che stanno imparando come me non sanno esattamente cosa stanno facendo ed è per questo che abbiamo bisogno di essere istruiti sulle cose nel loro giusto contesto.

Nella mia esperienza sembra che molte volte ci venga data per scontata una conoscenza che ancora non abbiamo. Dobbiamo prima conoscere le regole di base e poi fare esperienza. Solo dopo sapremo quali "regole" possiamo piegare o da cui possiamo discostarci.

A proposito, non mi riferivo a te nel mio post. Ho pensato che le tue risposte fossero di gran lunga le più chiare e accurate. E a rischio di sembrare un "leccaculo", quando si tratta di ottenere le risposte più chiare e accurate su questo forum, i tuoi post sono alcuni di quelli che cerco per primi. Ci sono solo circa 4 o 5 persone su questo forum che ho trovato finora che hanno dimostrato di essere più coerentemente accurate e che si può dire che hanno effettivamente più di una piccola esperienza alle spalle.

Grazie per il complimento; molto apprezzato.

Quando ho detto che non eravamo confusi, in realtà stavo parlando solo per me e Tovan, dato che sembriamo operare su una banda d'onda simile.

Mi scuso se il mio post è sembrato in qualche modo brusco; certamente non voleva esserlo e non mi sentivo così in quel momento (anche se ho i miei momenti...).

Il mio approccio generale a questo forum (quando non sto cercando aiuto io stesso) è quello di fare del mio meglio per aiutare coloro che stanno cercando di imparare un'abilità di programmazione. Non ho davvero tempo per le persone che vogliono che tutto sia fatto per loro, arrivando sul forum con il loro primo post intitolato "Ho bisogno di un EA di successo". Gente come te è il motivo per cui rimango interessato qui, e probabilmente ne sai più di me sul forex trading.

Un po' di background - sono stato un programmatore dai primi anni '80, ma ho smesso alcuni anni fa per lavorare come pilota di elicotteri commerciali. Tuttavia, data la mancanza di voli da parte della mia azienda quest'anno, ho scritto EAs per un mio amico che possiede una società di ricerca nascente. Abbiamo un approccio al trading basato sulla teoria del caos (piuttosto che sulla conoscenza del mercato) e stiamo già commerciando gli EAs con grande profitto per conto di un noto hedge fund. Mi piace molto!

Buona fortuna.

 
delcor wrote >>

Vangrosh

grazie per l'input

puoi aiutarmi a capire

è corretto

Faccio un EA con una traccia automatica

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

{
se (OrderStopLoss()==0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red); // piazza un TP e SL}

Dovresti impostare il tuo TP e SL di base quando invii il tuo ordine o fare la linea di cui sopra solo una volta. Se fai la linea di cui sopra

su ogni tick allora otterrai anche l'errore OrderModify 1 che si verificherà quando il valore SL esistente è lo stesso

come quello nuovo - il che significa che il prezzo non è ancora cambiato - SL è lo stesso di prima.
if((OrderOpenPrice()-Ask)>(Point*TrailingStop)) // piazza il TP

{
if(OrderStopLoss()>(Ask+Point*TrailingStop)+Point) // controlla vero

Questo sembra a posto. E penso che quello che stai facendo aggiungendo un punto (+Point) sia una buona idea. Io faccio la stessa cosa

ma in un posto e in un modo diverso, ma è per risolvere un problema diverso, un problema che si può avere quando la comparazione dei doppi non funziona bene, quindi si aggiunge

un punto per assicurarsi che il prezzo sia maggiore o minore, altrimenti il tuo Trailing stop non verrà eseguito a volte.

Il resto sembra corretto.
{

if(!OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red)) // se vero modificare ordine
Print("Error_Modify - ",GetLastError());
else str=StringConcatenate("\n Il mio numero di ticket è ", OrderTicket(), " e il mio stop loss è ", DoubleToStr(Ask+Point*TrailingStop,Digits)); // nuovo codice
}
}
}

Ecco l'esempio di trailing stop dal MQ EA MACD Sample.mq4

              // check for trailing stop
              if( TrailingStop>0)  
              {                 
                 if((OrderOpenPrice()-Ask)>(Point* TrailingStop))
                 {
                    if((OrderStopLoss()>(Ask+Point* TrailingStop)) || (OrderStopLoss()==0))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point* TrailingStop,OrderTakeProfit(),0,Red);
                     return(0);
                    }
                 }
              }

Ma ho scoperto che avrei ottenuto errori da questo codice a causa del noto problema di quando si confrontano i doppi come sopra, la tua clausola greater then > a volte valuterebbe come TRUE

anche quando i prezzi sono esattamente gli stessi - si stampa() i prezzi e sono gli stessi. Potete fare una ricerca sulla comparazione dei doppi per ottenere i dettagli. Ci sono soluzioni come la funzione CompareDoubles() che si trova in stdlib.mq4 (nella cartella delle librerie), o l'uso di NormalizeDouble() in posti dove non dovrebbe essere necessario, ma ho trovato che in questo caso aggiungere semplicemente un punto come hai fatto tu è un buon modo per farlo. Ma non ho testato il modo in cui lo fai tu quindi non sono certo che sia corretto, ma sembra ok. Ti darò il codice che uso nel mio EA nel prossimo post.