![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Ad un esame più attento sembra che quello che ho funzioni e si comporti esattamente come uno stop loss.
Quando aggiungo questo...
if(AccountEquity()+8<AccountBalance())
si comporta esattamente come uno stop loss a 8
così almeno ho fatto bene il codice per una volta, eh? Purtroppo non produce l'effetto che volevo nell'EA. Sta incasinando i vincitori che hanno bisogno che lo stop loss sia più ampio per funzionare. vittoria e sconfitta allo stesso tempo... ok, così sia.
Problema di debug del codice...trigger trailing stop...cercasi codificatori
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()) {
if(OrderType()==OP_BUY){
if(TrailingStop>0) {if(Bid-OrderOpenPrice()>Point*TrailingStopTrigger) {
if(OrderStopLoss()<Bid-Point*TrailingStop) {
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}else{
if(TrailingStop>0) {if((OrderOpenPrice()-Ask)>(Point*TrailingStopTrigger)) {
if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0)) {
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
return(0);Sto ancora imparando il codice. Questo dovrebbe innescare un trailing stop da inserire ad un livello specificato. Posso vedere da alcuni risultati di test che non si è attivato quando avrebbe dovuto.
Mi sto chiedendo se questo è scritto correttamente come 'Point*TrailingStopTrigger' dovrebbe moltiplicare o semplicemente aggiungere il valore del TrailingStopTrigger a Point per le posizioni di vendita e sottrarre se per le posizioni di acquisto. È questo il motivo per cui non si attiva come dovrebbe? O c'è qualcos'altro?
hai un demo fxdd? se è così cambia il colore a 0.
hai un demo fxdd? se è così cambia il colore a 0.
Sto usando la demo di interbankFX. la cosa del colore impedirebbe l'attivazione?
prova con ibfx. so che è un problema con fxdd se usi il nome del colore in un comando di modifica dell'ordine.
Non sembra cambiare i risultati. Forse mi sono sbagliato nel supporre che avrebbe dovuto attivarsi.
Ho 4 rapporti in allegato. L'unica differenza tra loro è la dimensione dello stop loss. Questo mi dice che ci sono molti ritracciamenti in corso. Questo non significa che voglio permettere ai perdenti di giocare fino all'intero stop loss se posso chiuderli in base a qualche regola aggiuntiva che non toglie spazio ai vincitori.
Guardando i risultati del rapporto 186 stop loss, e riguardando i grafici di questi 5 perdenti alle loro entrate. 4 su 5 di loro la barra immediatamente dopo aver aperto la posizione la barra successiva ha chiuso contro la posizione. Non so se una specie di regola come questa potrebbe essere aggiunta come uno stop loss per chiudere le posizioni se la barra successiva all'apertura della posizione va contro di essa per chiudere la posizione, funzionerebbe o no. Avrebbe fermato 4 dei 5 perdenti che sono rimasti ma non so quanti dei vincitori avrebbe anche chiuso.
Non so come sarebbe stata programmata una regola del genere. Ho appena percorso manualmente i primi 20 trade e ne avrebbe fermati 15 su 20, quindi questo non aiuta.
Sono aperto a suggerimenti.
Qualcuno PER FAVORE codifica questi da TS per me...
Ciao,
Qualcuno può per favore codificare i seguenti indicatori per me? Sono scritti nel (non)linguaggio di TradeStation.
se avete problemi allora PM / e-mail me
So che è un sacco di lavoro, ma ne varrà la pena una volta che chi li codifica saprà che metodo è...
SB
Prima che qualcuno prenda questo compito, potete spiegare quali sono le strategie e dare alcuni dettagli, riferimenti url per loro. Se è una strategia vincente, allora qualcuno accetterà la sfida. Altrimenti, perché qualcuno dovrebbe spendere il suo tempo a tradurre.
Grazie,
Perché questo codice non funziona?
Sto cercando di scrivere un pezzo di codice che modifichi il TP delle operazioni esistenti. Quando collego il codice a un grafico, funziona solo per la valuta in cui l'esperto è collegato. Non modifica altri trade di altre coppie di valute. Notate che nel mio codice non sto controllando OrderSymbol()==Symbol(). Dov'è l'errore? Devo aggiungere un "return(0)" dopo ogni OrderModify()? Potete aiutarmi?
L'esperto mi permette di aprire/chiudere/modificare i trade di una coppia di valute diversa mentre l'esperto è collegato solo a un singolo grafico? Sto cercando di scrivere un codice universale che elabori (cioè che modifichi o chiuda) tutte le operazioni esistenti indipendentemente dal grafico a cui l'EA è collegato. Qualcuno può confermare se questo è possibile? Se sì, allora cosa c'è di sbagliato nel seguente codice?
int mTrades=OrdersTotal();
se (mTrades>0)
{
for (i=0;i<mTrades;i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderType() == OP_BUY)
{
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), Ask+100*Point, White);
}
se (OrderType() == OP_SELL)
{
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), Bid-100*Point, Bianco);
}
}
}
Sto cercando di scrivere un pezzo di codice che modifichi il TP delle operazioni esistenti. Quando collego il codice a un grafico, funziona solo per la valuta in cui l'esperto è collegato. Non modifica altri trade di altre coppie di valute. Notate che nel mio codice non sto controllando OrderSymbol()==Symbol(). Dov'è l'errore? Devo aggiungere un "return(0)" dopo ogni OrderModify()? Potete aiutarmi?
L'esperto mi permette di aprire/chiudere/modificare le compravendite di una diversa coppia di valute mentre l'esperto è collegato solo a un singolo grafico? Sto cercando di scrivere un codice universale che elabori (cioè che modifichi o chiuda) tutte le operazioni esistenti indipendentemente dal grafico a cui l'EA è collegato. Qualcuno può confermare se questo è possibile? Se sì, allora cosa c'è di sbagliato nel seguente codice?
int mTrades=OrdersTotal();
se (mTrades>0)
{
for (i=0;i<mTrades;i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderType() == OP_BUY)
{
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), Ask+100*Point, White);
}
se (OrderType() == OP_SELL)
{
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), Bid-100*Point, Bianco);
}
}
}il problema è che stai usando Ask e Bid per il prezzo.
Prova ad usare: MarketInfo(OrderSymbol(),MODE_BID) e MarketInfo(OrderSymbol(),MODE_ASK) invece