Fxob Ea -
double currentDD = (AccountBalance() - AccountEquity()) / AccountBalance() * 100; if(currentDD > MaxAllowedDD) CloseAllOrders(); return;
int SendFXOBOrder(int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment) int ticket = OrderSend(Symbol(), cmd, volume, price, slippage, stoploss, takeprofit, comment, magic, 0, clrNONE); if(ticket < 0) int error = GetLastError(); if(error == 138) // Requote - retry with new price RefreshRates(); return OrderSend(Symbol(), cmd, volume, Ask, slippage, stoploss, takeprofit, comment, magic, 0, clrNONE); return ticket; fxob ea
Instead of the standard OrderSend() , use this template: int SendFXOBOrder(int cmd
extern int TickFilter = 5; // Process every 5th tick int tickCounter = 0; void OnTick() tickCounter++; if(tickCounter < TickFilter) return; tickCounter = 0; // EA logic here string comment) int ticket = OrderSend(Symbol()
FXOB supports partial fills. Your EA must track the OrderFilledVolume and adjust position management accordingly. 3.4 Tick Management To avoid overloading the CPU on FXOB’s high-tick environment, use: