Trabalho concluído
Tempo de execução 25 segundos
Comentário do cliente
Nice job :)
Comentário do desenvolvedor
Perfect
Termos de Referência
Hello,
Problem opening position
example:
When I have an order that opens either to bull or sell in the function
if(Counts () == 0
if it's a bull order and my stop loss is hit then it will go to the function
if (Counts () == 1 ect ...
what I want is when my function
if (Counts () == 2
is hit and a bull order is opened and my stop loss is hit then my function
if (Counts () == 3
will open a sell order.
and if my function
if (Counts () == 2
opens a sell order then my function
if (Counts () == 3
will open a bull command
//| test35.mq4 | //| xxx | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "xxx" #property link "http://www.mql5.com" #property version "1.00" #property strict extern double lots1 = 0.01; extern double lots2 = 0.03; extern double lots3 = 0.10; extern double lots4 = 0.01; extern double lots5 = 0.03; extern double lots6 = 0.10; extern double lots7 = 0.01; extern double lots8 = 0.03; extern double lots9 = 0.10; extern double lots10 = 0.01; extern double lots11 = 0.03; extern double lots12 = 0.10; input int TakeProfit1 = 10; input int StopLoss1 = 20; input int TakeProfit2 = 10; input int StopLoss2 = 20; input int TakeProfit3 = 10; input int StopLoss3 = 20; input int TakeProfit4 = 10; input int StopLoss4 = 20; input int TakeProfit5 = 10; input int StopLoss5 = 20; input int TakeProfit6 = 10; input int StopLoss6 = 20; input int TakeProfit7 = 10; input int StopLoss7 = 20; input int TakeProfit8 = 10; input int StopLoss8 = 20; input int TakeProfit9 = 10; input int StopLoss9 = 20; input int TakeProfit10 = 10; input int StopLoss10 = 20; input int TakeProfit11 = 10; input int StopLoss11 = 20; input int TakeProfit12 = 10; input int StopLoss12 = 20; input int period=14; // Averagin period for calculation input int period1=14; input int period2=14; input int period3=14; //input ENUM_APPLIED_PRICE appPrice=PRICE_HIGH; // Applied price input int OverBought=70; // Over bought level input int OverSold=30; // Over sold level input int OverBought1=75; // Over bought level input int OverSold1=25; // Over sold level input int OverBought2=80; // Over bought level input int OverSold2=20; // Over sold level input int OverBought3=85; // Over bought level input int OverSold3=15; // Over sold level extern int magic = 118516; //extern double Level = 1.3660; //extern double MaxDeviation = 9; // Max Deviation, points bool RunOnce=false; int last_order_check = false; datetime EaStartTime=TimeCurrent(); double takeprofit1=TakeProfit1; double stoploss1 =StopLoss1; double takeprofit2=TakeProfit2; double stoploss2 =StopLoss2; double takeprofit3=TakeProfit3; double stoploss3 =StopLoss3; double takeprofit4=TakeProfit4; double stoploss4 =StopLoss4; double takeprofit5=TakeProfit5; double stoploss5 =StopLoss5; double takeprofit6=TakeProfit6; double stoploss6 =StopLoss6; double takeprofit7=TakeProfit7; double stoploss7 =StopLoss7; double takeprofit8=TakeProfit8; double stoploss8 =StopLoss8; double takeprofit9=TakeProfit9; double stoploss9 =StopLoss9; double takeprofit10=TakeProfit10; double stoploss10 =StopLoss10; double takeprofit11=TakeProfit11; double stoploss11 =StopLoss11; double takeprofit12=TakeProfit12; double stoploss12 =StopLoss12; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { RunOnce=false; MathSrand(GetTickCount()); if(Digits==5 || Digits==3) { takeprofit1 =TakeProfit1*10; stoploss1 =StopLoss1*10; takeprofit2 =TakeProfit2*10; stoploss2 =StopLoss2*10; takeprofit3 =TakeProfit3*10; stoploss3 =StopLoss3*10; takeprofit4 =TakeProfit4*10; stoploss4 =StopLoss4*10; takeprofit5 =TakeProfit5*10; stoploss5 =StopLoss5*10; takeprofit6 =TakeProfit6*10; stoploss6 =StopLoss6*10; takeprofit7 =TakeProfit7*10; stoploss7 =StopLoss7*10; takeprofit8 =TakeProfit8*10; stoploss8 =StopLoss8*10; takeprofit9 =TakeProfit9*10; stoploss9 =StopLoss9*10; takeprofit10 =TakeProfit10*10; stoploss10 =StopLoss10*10; takeprofit11 =TakeProfit11*10; stoploss11 =StopLoss11*10; takeprofit12 =TakeProfit12*10; stoploss12 =StopLoss12*10; } return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnTimer() { OnTick(); } void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { if(IsLastOrderClose()) { OnInit(); Print("Ea Closed Manually "); EaStartTime=TimeCurrent(); } double rsi=iRSI(_Symbol,PERIOD_CURRENT,period,PRICE_HIGH,1); double rsi1=iRSI(_Symbol,PERIOD_CURRENT,period1,PRICE_HIGH,1); double rsi2=iRSI(_Symbol,PERIOD_CURRENT,period2,PRICE_HIGH,1); double rsi3=iRSI(_Symbol,PERIOD_CURRENT,period3,PRICE_HIGH,1); double MA_Fast1,MA_Low1,MA_Fast2,MA_Low2; MA_Fast1=iMA( NULL, PERIOD_M1, 1, 0, MODE_SMA, PRICE_TYPICAL, 0); // áûñòðàÿ ÌÀ MA_Low1=iMA( NULL, PERIOD_M1, 20, 7, MODE_SMA, PRICE_CLOSE, 0); // ìåäëåííàÿ ÌÀ MA_Fast2=iMA( NULL, PERIOD_M1, 1, 0, MODE_SMA, PRICE_TYPICAL, 1); // áûñòðàÿ ÌÀ MA_Low2=iMA( NULL, PERIOD_M1, 20, 7, MODE_SMA, PRICE_CLOSE, 1); // ìåäëåííàÿ ÌÀ int ticet; int t=MathRand(); if(CountVsego()==0) { if(t>16384) { if(Counts()==0&& (rsi<OverSold))//&&( Close[0] > High[1] ))// && (RunOnce || (Ask >=Level && Ask<=Level+(MaxDeviation*_Point) && Level !=0))) { ticet=OrderSend(Symbol(),OP_BUY,lots1,Ask,3,Bid-stoploss1*Point,Ask+takeprofit1*Point,"1",magic,0,clrGreen); if(ticet>0) { RunOnce=true;//OverSold } } } // Partie 1 else if(t<16384) { if(Counts()==0&&(rsi>OverBought ))//&&( Close[0] < Low[1] ))// && (RunOnce || (Bid <=Level && Bid >= Level-(MaxDeviation*_Point) && Level !=0))) { ticet=OrderSend(Symbol(),OP_SELL,lots1,Bid,3,Ask+stoploss1*Point,Bid-takeprofit1*Point,"1",magic,0,clrRed); if(ticet>0) { RunOnce=true; } } } // if(t>16384) // { if(Counts()==1&& (rsi1<OverSold1))// && MA_Fast2<MA_Low2 ))//&&( Close[0] > High[1] ))// && (RunOnce || (Ask >=Level && Ask<=Level+(MaxDeviation*_Point) && Level !=0))) { ticet=OrderSend(Symbol(),OP_BUY,lots2,Ask,3,Bid-stoploss2*Point,Ask+takeprofit2*Point,"2",magic,0,clrGreen); // if(ticet>0) // { // RunOnce=true; } // } // } // Partie 2 // else if(t<16384) // { if(Counts()==1&& (rsi1>OverBought1 ))// && MA_Fast2>MA_Low2 ))//&&( Close[0] < Low[1] ))// && (RunOnce || (Bid <=Level && Bid >= Level-(MaxDeviation*_Point) && Level !=0))) { ticet=OrderSend(Symbol(),OP_SELL,lots2,Bid,3,Ask+stoploss2*Point,Bid-takeprofit2*Point,"2",magic,0,clrRed); // if(ticet>0) // { // RunOnce=true; } // } // } // if(t>16384) // { if(Counts()==2&& (rsi2<OverSold2))// && MA_Fast4<MA_Low4 ))//&&( Close[0] > High[1] ))// && (RunOnce || (Ask >=Level && Ask<=Level+(MaxDeviation*_Point) && Level !=0))) { ticet=OrderSend(Symbol(),OP_BUY,lots3,Ask,3,Bid-stoploss3*Point,Ask+takeprofit3*Point,"3",magic,0,clrGreen); // if(ticet>0) // { // RunOnce=true; } // } // } //Partie 3 // else if(t<16384) // { if(Counts()==2&& (rsi2>OverBought2 ))// && MA_Fast4>MA_Low4 ))//&&( Close[0] < Low[1] ))// && (RunOnce || (Bid <=Level && Bid >= Level-(MaxDeviation*_Point) && Level !=0))) { ticet=OrderSend(Symbol(),OP_SELL,lots3,Bid,3,Ask+stoploss3*Point,Bid-takeprofit3*Point,"3",magic,0,clrRed); // if(ticet>0) //{ // RunOnce=true; } // } // } // if(t>16384) // { if(Counts()==3&&(rsi<OverSold))//&&( Close[0] > High[1] ))// && (RunOnce || (Ask >=Level && Ask<=Level+(MaxDeviation*_Point) && Level !=0))) { ticet=OrderSend(Symbol(),OP_BUY,lots4,Ask,3,Bid-stoploss4*Point,Ask+takeprofit4*Point,"4",magic,0,clrGreen); // if(ticet>0) // { // RunOnce=true; // } } // } // Partie 4 // else if(t<16384) // { if(Counts()==3&&(rsi>OverBought ))//&&( Close[0] < Low[1] ))// && (RunOnce || (Bid <=Level && Bid >= Level-(MaxDeviation*_Point) && Level !=0))) { ticet=OrderSend(Symbol(),OP_SELL,lots4,Bid,3,Ask+stoploss4*Point,Bid-takeprofit4*Point,"4",magic,0,clrRed); // if(ticet>0) // { // RunOnce=true; } // } // } // if(t>16384) // { if(Counts()==4&& (rsi1<OverSold1))// && MA_Fast2<MA_Low2 ))//&&( Close[0] > High[1] ))// && (RunOnce || (Ask >=Level && Ask<=Level+(MaxDeviation*_Point) && Level !=0))) { ticet=OrderSend(Symbol(),OP_BUY,lots5,Ask,3,Bid-stoploss5*Point,Ask+takeprofit5*Point,"5",magic,0,clrGreen); // if(ticet>0) // { // RunOnce=true; } // } // } // Partie 5 // else if(t<16384) // { if(Counts()==4&& (rsi1>OverBought1 ))// && MA_Fast2>MA_Low2 ))//&&( Close[0] < Low[1] ))// && (RunOnce || (Bid <=Level && Bid >= Level-(MaxDeviation*_Point) && Level !=0))) { ticet=OrderSend(Symbol(),OP_SELL,lots5,Bid,3,Ask+stoploss5*Point,Bid-takeprofit5*Point,"5",magic,0,clrRed); // if(ticet>0) // { // RunOnce=true; // } // } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int CountSELL() { int count=0; int i; for(i=OrdersTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderType()==OP_SELL) count++; } } return(count); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int CountBUY() { int count=0; int i; for(i=OrdersTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderType()==OP_BUY) count++; } } return(count); } //+------------------------------------------------------------------+ int Counts() { int count=0,i; for(i=OrdersHistoryTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) { if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderCloseTime()>=EaStartTime) { if(OrderProfit()>0) { if(count==0) { OnInit(); EaStartTime=TimeCurrent(); } return count; }else { count++; } } if(count > 11 && OrderCloseTime()>=EaStartTime) count=0; } } return(count); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int CountVsego() { int Vsego; Vsego=CountBUY()+CountSELL(); return(Vsego); } //+------------------------------------------------------------------+ bool IsLastOrderClose() { bool signal = false; for(int i=OrdersHistoryTotal()-1;i>=0;i--) { bool select = OrderSelect(i,SELECT_BY_POS,MODE_HISTORY); if(select && OrderSymbol()==_Symbol && OrderMagicNumber()==magic) { if(OrderType()==OP_BUY && OrderCloseTime()>=EaStartTime) { if(OrderClosePrice()>OrderStopLoss() && OrderClosePrice()<OrderTakeProfit()) { signal = true; } break; } else if(OrderType()==OP_SELL && OrderCloseTime()>=EaStartTime) { if(OrderClosePrice()<OrderStopLoss() && OrderClosePrice()>OrderTakeProfit()) { signal = true; } break; } break; } } return(signal); }
Respondido
1
Classificação
Projetos
138
41%
Arbitragem
30
7%
/
77%
Expirado
17
12%
Livre
2
Classificação
Projetos
136
14%
Arbitragem
43
21%
/
28%
Expirado
14
10%
Livre
Publicou: 2 códigos
3
Classificação
Projetos
148
59%
Arbitragem
16
38%
/
13%
Expirado
25
17%
Livre
Publicou: 1 código
4
Classificação
Projetos
680
57%
Arbitragem
25
16%
/
60%
Expirado
228
34%
Livre
Pedidos semelhantes
Requirements: - Convert my written trading rules into TradingView Pine strategy - Then convert into MT5 EA - Entry must be next candle open after signal candle close - Stop loss on signal candle high/low - Position sizing: fixed % risk per trade - Portfolio risk cap across symbols - One trade per symbol at a time - Must understand backtesting differences (spread, slippage, fill logic) Important: I want to be able to
Hey guys, I’ve been trading for 6 years now and I need to automate a strategy that is really simple and ove developed by myself. Can you help me on that? Here is my e-mail angelocherubini24@gmail.com
Data Integrity
500 - 1000 USD
The trading bot is an automated software system designed to monitor financial markets, execute trades, and manage risk based on predefined strategies. The bot aims to maximize profits while minimizing human intervention and emotional decision-making. Scope: Supports automated trading on selected exchanges (e.g., Binance, Bitget, Coinbase). Executes trades based on technical indicators, signals, or AI models. Provides
Busco programador profesional con experiencia demostrable en MQL5 para crear un Expert Advisor en MetaTrader 5 basado en Price Action , con lógica jerárquica, reglas objetivas y gestión de zonas dinámicas. La estrategia esta explicada en un documento Word de 30 páginas (con imágenes) explicado en español. Características del EA: Operaciones Buy, Sell, Buy Limit y Sell Limit (máx. 2 operaciones pendientes simultáneas
I want a modification on my ea . A spread filter or slipage filter such that when the market price is less than 50 point away from the pend order , then ea check the spread if less than the set filter spread. If spread is more than the set spread, the ea will delete the pend order . Secondly , if the broker price is moved or sliped the pending order from the original price it was set by the tolerable slipage distance
Brilliant reversal indicator
30+ USD
I want this indicator on my mt5 account and mt4 account because I want use this brilliant reversal indicator on my Android device each an every time when I enter on my mt5 account
1. Objective Create an MT5 automation script (or set of scripts) that fully automates my strategy optimization workflow, including: • Batch optimization runs • Automatic filtering of results • Automatic forward testing • Exporting and organizing results into structured files/folders The goal is to reduce manual work and allow one‑click execution of the entire pipeline. 2. Platform & Environment • MetaTrader 5 •
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
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
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
Informações sobre o projeto
Orçamento
30+ USD
Prazo
para 1 dias