Техническое задание
#define ExtBotName "AK-47 Scalper EA" //Bot Name #define Version "1.00" //--- input parameters extern string EASettings = "---------------------------------------------"; //-------- <EA Settings> -------- input int InpMagicNumber = 124656; //Magic Number extern string TradingSettings = "---------------------------------------------"; //-------- <Trading Settings> -------- input double Inpuser_lot = 0.01; //Lots input double InpSL_Pips = 3.5; //Stoploss (in Pips) input double InpMax_spread = 0.5; //Maximum allowed spread (in Pips) (0 = floating) extern string MoneySettings = "---------------------------------------------"; //-------- <Money Settings> -------- input bool isVolume_Percent = true; //Allow Volume Percent input double InpRisk = 3; //Risk Percentage of Balance (%) input string TimeSettings = "---------------------------------------------"; //-------- <Trading Time Settings> -------- input bool InpTimeFilter = true; //Trading Time Filter input int InpStartHour = 2; //Start Hour input int InpStartMinute = 30; //Start Minute input int InpEndHour = 21; //End Hour input int InpEndMinute = 0; //End Minute
2. local variables initialization
//--- Variables int Pips2Points; // slippage 3 pips 3=points 30=points double Pips2Double; // Stoploss 15 pips 0.015 0.0150 int InpMax_slippage = 3; // Maximum slippage allow_Pips. bool isOrder = false; // just open 1 order int slippage; string strComment = "";
3. Main Code
a/ Expert initialization function
int OnInit() { //--- //3 or 5 digits detection //Pip and point if (Digits % 2 == 1) { Pips2Double = _Point*10; Pips2Points = 10; slippage = 10* InpMax_slippage; } else { Pips2Double = _Point; Pips2Points = 1; slippage = InpMax_slippage; } //--- return(INIT_SUCCEEDED); }
b/ Expert tick function
void OnTick() { //--- if(IsTradeAllowed() == false) { Comment("AK-47 EA\nTrade not allowed."); return; } MqlDateTime structTime; TimeCurrent(structTime); structTime.sec = 0; //Set starting time structTime.hour = InpStartHour; structTime.min = InpStartMinute; datetime timeStart = StructToTime(structTime); //Set Ending time structTime.hour = InpEndHour; structTime.min = InpEndMinute; datetime timeEnd = StructToTime(structTime); double acSpread = MarketInfo(Symbol(), MODE_SPREAD); StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL); strComment = "\n" + ExtBotName + " - v." + (string)Version; strComment += "\nGMT time = " + TimeToString(TimeGMT(),TIME_DATE|TIME_SECONDS); strComment += "\nTrading time = [" + (string)InpStartHour + "h" + (string)InpStartMinute + " --> " + (string)InpEndHour + "h" + (string)InpEndMinute + "]"; strComment += "\nCurrent Spread = " + (string)acSpread + " Points"; strComment += "\nCurrent stoplevel = " + (string)StopLevel + " Points"; Comment(strComment); //Update Values UpdateOrders(); TrailingStop(); //Check Trading time if(InpTimeFilter) { if(TimeCurrent() >= timeStart && TimeCurrent() < timeEnd) { if(!isOrder) OpenOrder(); } } else { if(!isOrder) OpenOrder(); } }
3.1 Calculate signal in order to send orders
void OpenOrder(){ //int OrdType = OP_SELL;//-1; double TP = 0; double SL = 0; string comment = ExtBotName; //Calculate Lots double lot1 = CalculateVolume(); //if(OrdType == OP_SELL){ double OpenPrice = NormalizeDouble(Bid - (StopLevel * _Point) - (InpSL_Pips/2) * Pips2Double, Digits); SL = NormalizeDouble(Ask + StopLevel * _Point + InpSL_Pips/2 * Pips2Double, Digits); if(CheckSpreadAllow()) //Check Spread { if(!OrderSend(_Symbol, OP_SELLSTOP, lot1, OpenPrice, slippage, SL, TP, comment, InpMagicNumber, 0, clrRed)) Print(__FUNCTION__,"--> OrderSend error ",GetLastError()); } //} }
3.2 Calculate Volume
double CalculateVolume() { double LotSize = 0; if(isVolume_Percent == false) { LotSize = Inpuser_lot; } else { LotSize = (InpRisk) * AccountFreeMargin(); LotSize = LotSize /100000; double n = MathFloor(LotSize/Inpuser_lot); //Comment((string)n); LotSize = n * Inpuser_lot; if(LotSize < Inpuser_lot) LotSize = Inpuser_lot; if(LotSize > MarketInfo(Symbol(),MODE_MAXLOT)) LotSize = MarketInfo(Symbol(),MODE_MAXLOT); if(LotSize < MarketInfo(Symbol(),MODE_MINLOT)) LotSize = MarketInfo(Symbol(),MODE_MINLOT); } return(LotSize); }
3.3 EA has function "trailing Stop", SL will change every time price change (down)
void TrailingStop() { for(int i = OrdersTotal() - 1; i >= 0; i--) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if((OrderMagicNumber() == InpMagicNumber) && (OrderSymbol() == Symbol())) //_Symbol)) { //For Sell Order if(OrderType() == OP_SELL) { //--Calculate SL when price changed double SL_in_Pip = NormalizeDouble(OrderStopLoss() - (StopLevel * _Point) - Ask, Digits) / Pips2Double; if(SL_in_Pip > InpSL_Pips){ double newSL = NormalizeDouble(Ask + (StopLevel * _Point) + InpSL_Pips * Pips2Double, Digits); if(!OrderModify(OrderTicket(), OrderOpenPrice(), newSL, OrderTakeProfit(), 0, clrRed)) { Print(__FUNCTION__,"--> OrderModify error ",GetLastError()); continue; } } } //For SellStop Order else if(OrderType() == OP_SELLSTOP) { double SL_in_Pip = NormalizeDouble(OrderStopLoss() - (StopLevel * _Point) - Ask, Digits) / Pips2Double; if(SL_in_Pip < InpSL_Pips/2){ double newOP = NormalizeDouble(Bid - (StopLevel * _Point) - (InpSL_Pips/2) * Pips2Double, Digits); double newSL = NormalizeDouble(Ask + (StopLevel * _Point) + (InpSL_Pips/2) * Pips2Double, Digits); if(!OrderModify(OrderTicket(), newOP, newSL, OrderTakeProfit(), 0, clrRed)) { Print(__FUNCTION__,"--> Modify PendingOrder error!", GetLastError()); continue; } } } } } } }
Откликнулись
1
Оценка
Проекты
30
57%
Арбитраж
0
Просрочено
1
3%
Свободен
2
Оценка
Проекты
105
60%
Арбитраж
0
Просрочено
0
Свободен
3
Оценка
Проекты
36
25%
Арбитраж
1
0%
/
0%
Просрочено
4
11%
Работает
4
Оценка
Проекты
585
38%
Арбитраж
2
100%
/
0%
Просрочено
1
0%
Свободен
Опубликовал: 9 примеров
5
Оценка
Проекты
11
0%
Арбитраж
4
0%
/
100%
Просрочено
2
18%
Работает
6
Оценка
Проекты
258
61%
Арбитраж
4
50%
/
25%
Просрочено
10
4%
Свободен
7
Оценка
Проекты
211
19%
Арбитраж
19
42%
/
16%
Просрочено
0
Работает
8
Оценка
Проекты
35
20%
Арбитраж
4
50%
/
25%
Просрочено
0
Свободен
Опубликовал: 1 пример
9
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
10
Оценка
Проекты
242
31%
Арбитраж
0
Просрочено
3
1%
Свободен
Опубликовал: 2 примера
11
Оценка
Проекты
613
34%
Арбитраж
34
38%
/
47%
Просрочено
9
1%
Занят
12
Оценка
Проекты
232
73%
Арбитраж
6
100%
/
0%
Просрочено
1
0%
Свободен
Похожие заказы
Shybossforex robot
30 - 50 USD
Shybossforex strategy full data continuation and reversal.The strategy of continuation and reversal is trading technique 5hat involves two different approach to trade execution.The continuation and reversal is based on assumption that current market trend will continuation in future and therefore inloves taking position in same direction as prevailing trending,I will wait for the pullback and continuation trade with
Hi, I’d like a bot to be made for Ninja Trader 8 to place and execute the trades but I want to use MT4 for the analysis and trade entry criteria. MT4 has different price data feeds so this strategy seems to work better when I use MT4 for the analysis to determine the entry. I’ve attached the strategy and rules and settings I want for the bot. Let me know if you think it will work to automate this strategy and do it
I’m seeking an experienced NinjaTrader / NinjaScript developer to help build a custom trading solution. The project includes: Creating a custom signal for NinjaTrader. Developing a separate indicator box showing green/red arrows based on direction. Using multiple timeframes: current chart, 5 min, 15 min, 30 min, and 1 hr. Automating the strategy with a reliable trading bot . Requirements: Proven experience with
I need a Expert Advisor based on 1H timeframe to open positions once fib levels are broken. 2 positions opened per trigger. First position closes at first TP level and the remaining open position moves stop loss to break even. Only one break out trigger allowed per day. Fib must be auto drawn in by EA according to time frames given. Time frames need to be adjustable too. 3 Moving averages needed. Two smaller MA for
i want to convert this RSI colored candle indicator from mt4 to mt5, with the following specifications . the parameters are included in the fiiles below and i also want to have the alert sent on the closing of the candles just lile it does in the mt4 platform
Looking for a Prob Firm EA with Source Code
30 - 200 USD
I am looking for a fully functional Expert Advisor that is optimized for Prop Firm Challenges (e.g. FTMO, etc.). Requirements: Stable algorithm designed to comply with typical challenge rules (drawdown limits, max daily loss, etc.) Strategy with strong risk management and consistent profitability Fully commented source code (MQ5/MQ4) Transparent performance proof (backtests or live results) Optional Features
Trading Robot development
30 - 200 USD
I am looking for an experienced MQL5 developer to build a trading robot based on my personal strategy. The EA should be coded professionally, with efficiency, accuracy, and risk management in mind. Strategy Overview: The strategy is structure-based with Fibonacci retracement (0.618–0.79) as the primary Point of Interest (POI). Secondary confluences include order blocks, support/resistance, psychological levels, and
Ninjatrader developer needed
100+ USD
Hi, I’m looking for a NinjaTrader 8 developer. Please see my strategy on the video but right now I want to create only ATM as my PDF file showing please let me know how much would you charge me for the only ATM to work as my images showing thank you
Auto Cut Loss Tool
30 - 50 USD
I need a tool that will close a trade once price has breached a zone at the close of a candle. Please take look at the attached chart. There, I had a sell zone at 172.31 up to 172.60. I had a stop loss at 172.81. Price got into the zone and managed to hit 172.60 but the candle didn't close above it, so the Auto Cut Loss toll did not applied. Eventually, price hit and close above 172.60 at 172.63, at which the Auto
I am looking for an experienced MetaTrader 5 (MT5) developer to create a custom Retail Sentiment Index Indicator. The indicator will pull real-time sentiment data from multiple brokers via their APIs, calculate net sentiment (long – short), and plot each feed as a moving average line directly over the candlestick chart. The indicator must also display a weighted average line (thicker) when more than one broker feed
Информация о проекте
Бюджет
30 - 200 USD
Исполнителю
27
- 180
USD
Сроки выполнения
от 1 до 100 дн.