- Init
- Magic
- InitSignal
- InitTrailing
- InitMoney
- InitTrade
- Deinit
- OnTickProcess
- OnTradeProcess
- OnTimerProcess
- OnChartEventProcess
- OnBookEventProcess
- MaxOrders
- Signal
- ValidationSettings
- InitIndicators
- OnTick
- OnTrade
- OnTimer
- OnChartEvent
- OnBookEvent
- InitParameters
- DeinitTrade
- DeinitSignal
- DeinitTrailing
- DeinitMoney
- DeinitIndicators
- Refresh
- Processing
- SelectPosition
- CheckOpen
- CheckOpenLong
- CheckOpenShort
- OpenLong
- OpenShort
- CheckReverse
- CheckReverseLong
- CheckReverseShort
- ReverseLong
- ReverseShort
- CheckClose
- CheckCloseLong
- CheckCloseShort
- CloseAll
- Close
- CloseLong
- CloseShort
- CheckTrailingStop
- CheckTrailingStopLong
- CheckTrailingStopShort
- TrailingStopLong
- TrailingStopShort
- CheckTrailingOrderLong
- CheckTrailingOrderShort
- TrailingOrderLong
- TrailingOrderShort
- CheckDeleteOrderLong
- CheckDeleteOrderShort
- DeleteOrders
- DeleteOrder
- DeleteOrderLong
- DeleteOrderShort
- LotOpenLong
- LotOpenShort
- LotReverse
- PrepareHistoryDate
- HistoryPoint
- CheckTradeState
- WaitEvent
- NoWaitEvent
- TradeEventPositionStopTake
- TradeEventOrderTriggered
- TradeEventPositionOpened
- TradeEventPositionVolumeChanged
- TradeEventPositionModified
- TradeEventPositionClosed
- TradeEventOrderPlaced
- TradeEventOrderModified
- TradeEventOrderDeleted
- TradeEventNotIdentified
- TimeframeAdd
- TimeframesFlags
Processing
Algoritmo de procesamiento principal.
virtual bool Processing() |
Valor devuelto
true si la operación se ha ejecutado; en caso contrario false.
Nota
Lleva a cabo los siguientes pasos:
1. Comprueba la presencia en el símbolo de la posición abierta. Si no hay ninguna posición abierta, omite los pasos 2, 3 y 4.
2. Comprueba las condiciones para invertir la posición abierta (método CheckReverse()). Si la posición ha sido "revertida", termina.
3. Comprueba las condiciones para cerrar la posición (método CheckClose()). Si la posición se ha cerrado, omite el paso 4.
4. Comprueba las condiciones para modificar los parámetros de la posición (método CheckTrailingStop()). Si los parámetros de la posición han cambiado, termina.
5. Comprueba la presencia de órdenes pendientes en el símbolo. Si no hay ninguna orden pendiente, va al paso 9.
6. Comprueba las condiciones para borrar la orden (CheckDeleteOrderLong() para comprar órdenes pendientes o CheckDeleteOrderShort() para venderlas). Si la orden se ha borrado, va al paso 9.
7. Comprueba las condiciones para modificar los parámetros de la orden pendiente (CheckTrailingOrderLong() para comprar órdenes o CheckTrailingOrderShort() para venderlas). Si los parámetros de la orden han cambiado, termina.
8. Termina.
9. Comprueba las condiciones para abrir la posición (método CheckOpen()).
Si desea implementar su propio algoritmo, debe sobreescribir el método Processing() de la clase derivada.
Implementación
//+------------------------------------------------------------------+ |