工作已完成
执行时间4 分钟
客户反馈
Experienced coder of our generation, flexible and understanding each and every details.
He is fast, faster than Japanese bullet train.
员工反馈
Excellent client
I will help him again
thank you
指定
Anyone who can add opening direction base on moving average if its above MA must take buy trades only if below then take sell trades only. #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.20" input bool inputOpenOppositeTradeAfterClose = true; // Open Opposite Trade After Close input ENUM_ORDER_TYPE_FILLING typeFilling = ORDER_FILLING_FOK; //Order Filling Type input int inputMaxOppositeTradePerSymbol = 3; //Max Opposite Trade Per Symbol input int slippage = 100; //Slippage In Points long MagicNumber = 163818213; bool timerCreated = false; int TIMER_FREQUENCY = 1; struct FLOATING_TRADES { ulong ticket; int tradeType; string symbol; double tradeLots; double stoploss; double takeprofit; bool oppositeAllowed; }; FLOATING_TRADES FloatingTradesArray[]; bool inititalized = false; int OnInit() { if(!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)) { Alert("Please Allow Auto Trading"); return(INIT_FAILED); } if(!inititalized) { ArrayResize(FloatingTradesArray, 0); timerCreated = EventSetTimer(TIMER_FREQUENCY); inititalized = true; } return(INIT_SUCCEEDED); } void OnDeinit(const int reason) { switch (reason) { case REASON_CHARTCHANGE: break; case REASON_PARAMETERS: break; default: inititalized = false; EventKillTimer(); timerCreated = false; break; } } void OnTick() { if (!timerCreated) timerCreated = EventSetTimer(TIMER_FREQUENCY); } void OnTimer() { FindClosedPositions(); FindNewPositions(); } void FindNewPositions() { for(int i=PositionsTotal()-1; i>=0; i--) { ulong position_ticket=PositionGetTicket(i); ENUM_POSITION_TYPE type=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); string symbol = PositionGetString(POSITION_SYMBOL); if(position_ticket != 0 && (type==POSITION_TYPE_BUY || type==POSITION_TYPE_SELL) && PositionGetInteger(POSITION_MAGIC) != MagicNumber) { if(CheckNewPosition(position_ticket)) { Print("position "+(string)position_ticket+" opened"); bool oppositeAllowed = CountOfTradeWithSameSymbolInArray(symbol) < inputMaxOppositeTradePerSymbol; FLOATING_TRADES newTrade; newTrade.ticket = position_ticket; newTrade.tradeType = (int)PositionGetInteger(POSITION_TYPE); newTrade.symbol = symbol; newTrade.tradeLots = PositionGetDouble(POSITION_VOLUME); newTrade.stoploss = PositionGetDouble(POSITION_SL); newTrade.takeprofit = PositionGetDouble(POSITION_TP); newTrade.oppositeAllowed = oppositeAllowed; int size = ArraySize(FloatingTradesArray); ArrayResize(FloatingTradesArray, size + 1); FloatingTradesArray[size] = newTrade; } } } } bool CheckNewPosition(ulong positionTicket) { bool result = true; for(int i=0; i<ArraySize(FloatingTradesArray); i++) { if(FloatingTradesArray[i].ticket == positionTicket) { result = false; break; } } return result; } void FindClosedPositions() { for(int i=0; i<ArraySize(FloatingTradesArray); i++) { ulong PositionTicket = FloatingTradesArray[i].ticket; ENUM_POSITION_TYPE type=(ENUM_POSITION_TYPE)FloatingTradesArray[i].tradeType; string symbol = FloatingTradesArray[i].symbol; double lot = FloatingTradesArray[i].tradeLots; double stoploss = FloatingTradesArray[i].stoploss; double takeprofit = FloatingTradesArray[i].takeprofit; bool oppositeAllowed = FloatingTradesArray[i].oppositeAllowed; if(PositionTicket != 0 && (type==POSITION_TYPE_BUY || type==POSITION_TYPE_SELL)) { if(!CheckIfPositionIsFloating(PositionTicket) && CheckPositionFromHistory(PositionTicket)) { Print("position "+(string)PositionTicket+" closed"); if(oppositeAllowed) { if(OpenOppsitePositionOpened(PositionTicket, symbol, type, lot, stoploss, takeprofit)) { Print("oppsite of position "+(string)PositionTicket+" opened"); int size = ArraySize(FloatingTradesArray); for (int j = i + 1; j < size; j++) { FloatingTradesArray[j - 1] = FloatingTradesArray[j]; } size--; ArrayResize(FloatingTradesArray, size); } } else { int size = ArraySize(FloatingTradesArray); for (int j = i + 1; j < size; j++) { FloatingTradesArray[j - 1] = FloatingTradesArray[j]; } size--; ArrayResize(FloatingTradesArray, size); } } } } } bool CheckIfPositionIsFloating(ulong PositionTicket) { bool result = false; for(int i=PositionsTotal()-1; i>=0; i--) { ulong position_ticket = PositionGetTicket(i); if(position_ticket == PositionTicket) { result = true; break; } } return result; } bool CheckPositionFromHistory(ulong positionTicket) { bool result = false; if(HistorySelectByPosition(positionTicket)) { ulong dealTicket = 0; int DealEntry; for(uint j = 0; j<2; j++) { if((dealTicket=HistoryDealGetTicket(j))>0) { DealEntry = (int)HistoryDealGetInteger(dealTicket,DEAL_ENTRY); if(DealEntry==DEAL_ENTRY_OUT) result = true; } } } return result; } bool OpenOppsitePositionOpened(long ticket, string symbol, ENUM_POSITION_TYPE positionType, double lot, double sl,double tp) { if(!inputOpenOppositeTradeAfterClose) return true; string tradeComment = "opp:"+(string)ticket; if(CheckIfPositionIsOpened(tradeComment)) return true; if(CheckIfOrderIsOpened(tradeComment)) return true; ENUM_POSITION_TYPE OppPositionType = ReversePosition(positionType); double temp = sl; sl = tp; tp = temp; if(OppPositionType == POSITION_TYPE_BUY) return OpenBuyPosition(symbol, lot, sl, tp, tradeComment); else if(OppPositionType == POSITION_TYPE_SELL) return OpenSellPosition(symbol, lot, sl, tp, tradeComment); return false; } ENUM_POSITION_TYPE ReversePosition(ENUM_POSITION_TYPE positionType) { if(positionType == POSITION_TYPE_BUY) return POSITION_TYPE_SELL; //buy reverse to sell else if(positionType == POSITION_TYPE_SELL) return POSITION_TYPE_BUY; //sell reverse to buy return positionType; } bool OpenBuyPosition(string symbol,double lot,double sl,double tp, string comment) { bool res = false; MqlTradeRequest request={}; MqlTradeResult result={}; request.action = TRADE_ACTION_DEAL; request.symbol = symbol; request.volume = lot; request.type = ORDER_TYPE_BUY; request.price = SymbolInfoDouble(symbol,SYMBOL_ASK); request.sl = sl; request.tp = tp; request.deviation = slippage; request.type_filling = typeFilling; request.comment = comment; request.magic = MagicNumber; if(!OrderSend(request,result)) { PrintFormat("OrderSend error %d",GetLastError()); res = false; } else res = true; return res; } bool OpenSellPosition(string symbol,double lot,double sl,double tp, string comment) { bool res = false; MqlTradeRequest request={}; MqlTradeResult result={}; request.action = TRADE_ACTION_DEAL; request.symbol = symbol; request.volume = lot; request.type = ORDER_TYPE_SELL; request.price = SymbolInfoDouble(symbol,SYMBOL_BID); request.sl = sl; request.tp = tp; request.deviation = slippage; request.type_filling = typeFilling; request.comment = comment; request.magic = MagicNumber; if(!OrderSend(request,result)) { PrintFormat("OrderSend error %d",GetLastError()); res = false; } else res = true; return res; } bool CheckIfPositionIsOpened(string positionComment) { bool result = false; for(int i=PositionsTotal()-1; i >= 0; i--) { ulong position_ticket=PositionGetTicket(i); string position_comment = PositionGetString(POSITION_COMMENT); if(position_comment==positionComment) { result = true; break; } } return result; } bool CheckIfOrderIsOpened(string orderComment) { bool result = false; for(int i=OrdersTotal()-1; i >= 0; i--) { ulong orderticket=OrderGetTicket(i); string order_comment = OrderGetString(ORDER_COMMENT); if(order_comment==orderComment) { result = true; break; } } return result; } int CountOfTradeWithSameSymbolInArray(string symbol) { int count = 0; for(int i=0; i<ArraySize(FloatingTradesArray); i++) { if(FloatingTradesArray[i].symbol == symbol) count++; } return count; }
反馈
1
等级
项目
11
18%
仲裁
8
38%
/
38%
逾期
1
9%
空闲
2
等级
项目
119
50%
仲裁
4
50%
/
50%
逾期
3
3%
空闲
3
等级
项目
18
28%
仲裁
4
50%
/
50%
逾期
1
6%
空闲
4
等级
项目
59
27%
仲裁
26
19%
/
54%
逾期
10
17%
工作中
发布者: 1 代码
5
等级
项目
178
39%
仲裁
4
25%
/
50%
逾期
14
8%
空闲
6
等级
项目
143
76%
仲裁
0
逾期
2
1%
空闲
相似订单
I want to create ninjtrader bot
30+ USD
Are you able to build one bot for stock and one for ninja trader and tell me the win rate on it. I need ninja trader bot that enter buy and exit according the move to do not stay long in the market in each entry . That can follow the smart money concept or other if you have a good one
custom color candle logic understand programmer need for this job... first understand logic and interested please message .... 1-candle color green and hh for buy, candle color red ll for sell so candle color and hh or ll must match to place order... below color candle entry logic see in (ea input settings) previous candle (low or high) for stop pending order with some pips high or low in input settings 2-orders
Need a faithful ready made hft scalper ea robot
150 - 300 USD
READ CAREFULLY BEFORE APPLY Hi there I am in need of a well automated and reliable ready made expert advisor scalper ea that run perfectly across trending market conditions, I mean a profitable strategy must perform optimally and yield massive trading returns, I am looking forward to validate a well working ea as per my specifications here, you must provide both screenshot and videos of the HFT scalper ea running on
Hi there I need an developer to create a ea for mt5 and mt4 but the ea should be an fast connect ea meaning by taping the ea then automatically it connect to mt5 chart same in mt4 It should place order using invisible buy and invisible sell when the bid price breakout in 1 point Automatically it place an order depends on which direction and invisible stop loss in points , please reply if you can
Proven Profitable MT5 EA with Verified Live Track Record
100 - 200 USD
I am looking to purchase a license for an existing and proven MT5 Expert Advisor. I am NOT looking for someone to develop a new EA from scratch. The EA must meet ALL of the following requirements: BACKTEST REQUIREMENTS Minimum 10 years of backtest history Minimum 5,000 trades in the backtest Backtest must use realistic trading costs, spread and commissions Results should be reasonably consistent across different
EA
35+ USD
Project Title: Development of a Custom Breakout Expert Advisor (EA) with Dynamic Trailing Stop, Advanced Security Filters, and On-Screen Dashboard for MT5 Project Description: Overview: I am looking for an experienced MQL5 developer to build a fully automated Trading Robot (Expert Advisor) for MetaTrader 5 based on a pending orders breakout strategy with strict dynamic risk management and customized time/profit
Need a faithful ready made hft scalper ea robot
100 - 300 USD
READ CAREFULLY BEFORE APPLY Hi there I am in need of a well automated and reliable ready made expert advisor scalper ea that run perfectly across trending market conditions, I mean a profitable strategy must perform optimally and yield massive trading returns, I am looking forward to validate a well working ea as per my specifications here, you must provide both screenshot and videos of the HFT scalper ea running on
Need a ready made HFT scalper ea
100 - 200 USD
READ CAREFULLY BEFORE APPLY Hi there I am in need of a well automated and reliable ready made expert advisor scalper ea that run perfectly across trending market conditions, I mean a profitable strategy must perform optimally and yield massive trading returns, I am looking forward to validate a well working ea as per my specifications here, you must provide both screenshot and videos of the HFT scalper ea running on
MT5 Forex Scalping Expert Advisor — Budget $30 Project description I am looking for a developer to build a simple, fully automated Forex scalping bot (Expert Advisor / EA) for MetaTrader 5 (MT5). My total budget is $30 USD . Please keep the strategy simple and focus on reliable execution, risk management, and easy configuration. 1. Trading strategy The bot must automatically identify trading opportunities and open
Project Title: Development of a Custom Breakout Expert Advisor (EA) with Dynamic Trailing Stop and On-Screen Dashboard for MT5 Project Description: Overview: I am looking for an experienced MQL5 developer to build a fully automated Trading Robot (Expert Advisor) for MetaTrader 5 based on a pending orders breakout strategy with strict dynamic risk management. The EA must be highly optimized, bug-free, and follow the
项目信息
预算
30+ USD