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
La funzione isCloseLastPosByStop().
Questa funzione restituisce una bandiera per chiudere l'ultima posizione per stop. La bandiera è alzata - Vero - StopLoss è scattato. Flag abbassato - Falso - la posizione è stata chiusa per un altro motivo. Una selezione più accurata delle posizioni da prendere in considerazione è impostata utilizzando parametri esterni:
- sy - Nome dello strumento di mercato. Se questo parametro è impostato, la funzione considererà solo le posizioni dello strumento specificato. Il valore predefinito "" significa qualsiasi strumento di mercato. NULL significa lo strumento corrente.
- op - operazione commerciale, tipo di posizione. Valori validi: OP_BUY, OP_SELL o -1. Il valore predefinito -1 significa qualsiasi posizione.
- mn - Identificatore di posizione, MagicNumber. Il valore predefinito -1 significa qualsiasi identificatore.
P.S. In allegato c'è uno script per testare la funzione isCloseLastPosByStop().Funzione OpenPosition() per l'online.
2008.05.20 04:47:41 !OBLD_EUR_S EURUSD,M30: le chiamate di funzioni esperte non sono consentite; 'stdlib'-'ErrorDescription'
Ho collegato la funzione OpenPosition() nel mio Expert Advisor sul reale, l'errore 4059
L'errore 4059 significa che la funzione non è disponibile in modalità test. L'identificatore di errore è ERR_FUNCTION_NOT_ALLOWED_IN_TESTING_MODE. Le seguenti funzioni generano l'errore: MarketInfo, MessageBox, SendFTP, SendMail, WindowIsVisible, WindowFind, WindowHandle.
ha cambiato NULL in Symbol(), è scomparso, poi è apparso un messaggio
2008.05.20 04:47:41 !OBLD_EUR_S EURUSD,M30: le chiamate di funzioni esperte non sono consentite; 'stdlib'-'ErrorDescription'
La funzione isCloseLastPosByTake().
Questa funzione restituisce una bandiera per chiudere l'ultima posizione al Take Profit. La bandiera è su - Vero - TakeProfit è scattato. Flag abbassato - Falso - la posizione è stata chiusa per un altro motivo. Una selezione più accurata delle posizioni da considerare è specificata utilizzando parametri esterni:
- sy - Nome dello strumento di mercato. Se impostate questo parametro, la funzione considererà solo le posizioni dello strumento specificato. Il valore predefinito "" significa qualsiasi strumento di mercato. NULL significa lo strumento corrente.
- op - operazione commerciale, tipo di posizione. Valori validi: OP_BUY, OP_SELL o -1. Il valore predefinito -1 significa qualsiasi posizione.
- mn - Identificatore di posizione, MagicNumber. Il valore predefinito -1 significa qualsiasi identificatore.
HH. In allegato c'è uno script per testare la funzione isCloseLastPosByTake().La funzione isLossLastPos().
Questa funzione restituisce il flag di perdita dell'ultima posizione chiusa. Flag up - True - l'ultima posizione è stata chiusa con una perdita. Flags down - Falso - l'ultima posizione è stata chiusa a zero o con un profitto. Questa funzione non considera gli swap e le commissioni. La selezione delle posizioni è definita da parametri esterni:
- sy - Nome dello strumento di mercato. Se si specifica questo parametro, la funzione considererà solo le posizioni dello strumento specificato. Il valore predefinito "" significa qualsiasi strumento di mercato. NULL significa lo strumento corrente.
- op - operazione commerciale, tipo di posizione. Valori validi: OP_BUY, OP_SELL o -1. Il valore predefinito -1 significa qualsiasi posizione.
- mn - Identificatore di posizione, MagicNumber. Il valore predefinito -1 significa qualsiasi identificatore.
P.S. In allegato c'è uno script per testare la funzione isLossLastPos().La funzione isTradeToDay().
Questa funzione restituisce la bandiera commerciale per oggi. Flag è su - Vero - c'erano posizioni aperte oggi. Flag down - Falso - nessuna posizione aperta oggi. La selezione delle posizioni da prendere in considerazione è impostata da parametri esterni:
- sy - Nome dello strumento di mercato. Se questo parametro è impostato, la funzione considererà solo le posizioni dello strumento specificato. Il valore predefinito "" significa qualsiasi strumento di mercato. NULL significa lo strumento corrente.
- op - operazione commerciale, tipo di posizione. Valori validi: OP_BUY, OP_SELL o -1. Il valore predefinito -1 significa qualsiasi posizione.
- mn - Identificatore di posizione, MagicNumber. Il valore predefinito -1 significa qualsiasi identificatore.
ZZY. In allegato c'è uno script per testare la funzione isTradeToDay().La funzione isCloseLastPosByStop().
Questa funzione restituisce una bandiera per chiudere l'ultima posizione per stop. La bandiera è alzata - True - StopLoss è scattato. Flag abbassato - Falso - la posizione è stata chiusa per un altro motivo. Una selezione più accurata delle posizioni da prendere in considerazione è impostata utilizzando parametri esterni:
().Pomeriggio . Quando si implementa il codice con questa funzione, è apparsa un po' di confusione. Ho applicato questa funzione in questo modo:
Fino a questo punto tutto funziona bene! Tutte le posizioni BUY sono chiuse e le posizioni BUY sono cancellate, come l'ho definito! Ma poi l'Expert Advisor reimposta gli ordini pendenti secondo i suoi segnali di entrata. Come previsto.
Ma questi ordini vengono immediatamente cancellati! A quanto pare, la bandiera è ancora appesa lì. Ma perché è lì? Le ultime posizioni non sono state chiuse da uno Stop Loss ma dalla forza!
Come devo affrontare questa situazione? Come posso fare in modo che il mio Expert Advisor visualizzi i suoi prossimi ordini normalmente dopo l'esecuzione del comando di chiusura di questo algoritmo?
Cosa devo fare in questa situazione? In modo che l'EA possa piazzare i suoi prossimi ordini normalmente dopo il comando di chiusura?
Questa domanda deve essere affrontata nel contesto dell'intero compito, perché non è solo una singola azione, ma un'interazione, e in un certo ordine. Perciò, descrivete il compito per intero. Non hai bisogno di un codice. Basta descrivere il compito a parole.
Domanda di riscaldamento. Perché devi cancellare gli ordini e rimetterli a posto? Penso che sia preferibile modificare.
I miei ordini e le mie posizioni sono raggruppati in array secondo i profitti, le perdite, gli ordini stop e limit, e altre ragioni.
In questo caso particolare, sto chiudendo l'array di posizioni BUY che sono state aperte con ordini stop e che hanno accumulato un determinato profitto. E cancello tutti gli altri ordini di stop che non hanno funzionato.
//---------------------------------------------------------------------------------------------
Ora ho messo una funzione di commento - Comment (isCloseLastPosByStop());
Guardando. Inizialmente, la funzione =0. Dopo la prima chiusura di uno Stop Loss Comment (isCloseLastPosByStop()); cambia a uno, e poi - dopo la chiusura forzata di altre posizioni, non ritorna a zero, ma continua ad essere uno!