Tarea técnica

#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;  
                     }
                  
                  }
              }
              
           }
        }
     }
  }

Han respondido

1
Desarrollador 1
Evaluación
(22)
Proyectos
33
52%
Arbitraje
1
100% / 0%
Caducado
1
3%
Libre
2
Desarrollador 2
Evaluación
(102)
Proyectos
105
60%
Arbitraje
0
Caducado
0
Libre
3
Desarrollador 3
Evaluación
(28)
Proyectos
39
23%
Arbitraje
14
0% / 93%
Caducado
4
10%
Trabaja
4
Desarrollador 4
Evaluación
(573)
Proyectos
648
41%
Arbitraje
2
100% / 0%
Caducado
1
0%
Libre
Ha publicado: 9 ejemplos
5
Desarrollador 5
Evaluación
(7)
Proyectos
11
0%
Arbitraje
4
0% / 100%
Caducado
2
18%
Trabaja
6
Desarrollador 6
Evaluación
(163)
Proyectos
258
61%
Arbitraje
4
50% / 25%
Caducado
10
4%
Libre
7
Desarrollador 7
Evaluación
(177)
Proyectos
229
20%
Arbitraje
20
40% / 20%
Caducado
0
Ocupado
8
Desarrollador 8
Evaluación
(33)
Proyectos
35
20%
Arbitraje
5
40% / 40%
Caducado
0
Libre
Ha publicado: 1 ejemplo
9
Desarrollador 9
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
Ha publicado: 1 ejemplo
10
Desarrollador 10
Evaluación
(250)
Proyectos
256
30%
Arbitraje
0
Caducado
3
1%
Libre
Ha publicado: 2 ejemplos
11
Desarrollador 11
Evaluación
(546)
Proyectos
628
33%
Arbitraje
38
37% / 50%
Caducado
11
2%
Trabajando
12
Desarrollador 12
Evaluación
(77)
Proyectos
243
74%
Arbitraje
7
100% / 0%
Caducado
1
0%
Libre
Ha publicado: 1 artículo
Solicitudes similares
Would it be possible to connect Futures prop firm with Rithmic or Tradeovate platform to Ninjatrader automated trading ? If anyone can do this for me I will be happy to get started with the person right away
hello great developer I want to modify my NT8 indicator to change its arrow printing logic so that arrows appear on the first candled dot, not after the series. no repaint and no back painting. all in real time. This will help me get timely signals. Scope of work - Modify NT8 indicator logic to print arrows on the first candled dot. - Ensure arrow print matches 90%+ accuracy compared to the current functionality. -
Saya ingin dibuatkan Expert Advisor untuk MetaTrader 5 berbasis strategi EMA 50/200 + Breakout 20 candle dengan sistem risk percentage otomatis. EA harus memiliki fitur ATR stop loss, trailing stop, break even, max spread filter, dan daily loss limit. Dilarang menggunakan martingale, grid, atau averaging. Target RR minimal 1:2 dan drawdown di bawah 20%
I am building a professional-grade survival EA for USDJPY designed to: Repeatedly pass FTMO-style challenges Sustain long-term funded accounts Deploy safely across multiple prop accounts This is not a retail scalper. This is a controlled EMA pullback engine with strict risk governance and anti-correlation logic . All parameters must be configurable. Defaults must match exactly as listed. Core Strategy – EMA Pullback
I’m after someone to make me a forex ex for meta trader 5 it will be trading GBPUSD only but having to align with EURUSD and rules and entry’s based off weekly and daily vwap with 20 EMA
Key Requirements: ​ Zone Detection: The EA must read "Weak Support/Resistance" zones generated by my indicator (I will provide the .mq4/ex4 file). ​ Execution Logic: - Identify the candle with the longest wick within the detected liquidity zone. ​Place a Pending Order (Buy Stop/Sell Stop) 20 points (2 pips) before the breakout level of that wick. ​ Trade Management: ​Fixed SL: 40 points (4 pips). ​Fixed TP: 40 points
I have a open source Tradingview indicator that I want it to be converted to Ninja Trader8. I have attached it. Please let me know, if you can do it and for how muc
GOLF SAFE BOT 30 - 200 USD
#property strict input int FastMA = 20; input int SlowMA = 50; input double LotSize = 0.01; input double StopLoss = 300; // Gold points input double TakeProfit = 600; int fastMA, slowMA; //------------------------------------------------- int OnInit() { fastMA = iMA(_Symbol, PERIOD_M15, FastMA, 0, MODE_EMA, PRICE_CLOSE); slowMA = iMA(_Symbol, PERIOD_M15, SlowMA, 0, MODE_EMA, PRICE_CLOSE);
hello great developer I need to copy trading signals from the Forex Precision app. I receive push notifications with the trades, and I must manually copy them into MetaTrader 4 (MT4), including the entry price, take profit, and stop loss. Is necessary Copy from Forex precision take the type AUD/JPY Copy the entry value and type sell or buy and put this info in mt4 and put the take profitt +10 and stop loss -10
I need help in modifying an amibroker AFL indicator the indicator already works but I need per symbol static variable isolation, parameters persistence per symbol after restart, non declining trailing stop logic, parameter auto restore when switching symbols and a global reset function for static variables. For better understanding As discussed, this is the official offer for restructuring my RAD Chandelier stop loss

Información sobre el proyecto

Presupuesto
30 - 200 USD
Plazo límite de ejecución
de 1 a 100 día(s)