Техническое задание
#property copyright "Copyright 2024, Trade Smart Fx Tools"
#property link "tradesmartfxtools.online"
#property version "1.00"
#property strict
// Global Varibles
int MAGIC_NUMBER = 0907200406;
string labelName = "tradesmartfxtools.online";
string updatedLabelName = "updated_version_label";
string updatedLabelText = "Updated version available at tradesmartfxtools.online";
string labelText = "EA by tradesmartfxtools.online";
string buyProfitLabelName = "OverallBuyProfitLabel";
string sellProfitLabelName = "OverallSellProfitLabel";
int labelFontSize = 16;
int updatedLabelFontSize = 12;
color labelColor = Yellow;
color profitLabelColor = White;
color lossLabelColor = White;
int spaceFromBottom = 50;
color updatedLabelColor = White;
int updatedSpaceFromBottom = 20;
input int fastMAPeriod = 10; // Period for fast MA
input int slowMAPeriod = 25; // Period for slow MA
//+------------------------------------------------------------------+
//| Labels |
//+------------------------------------------------------------------+
void createOrUpdateLabels(double buyProfit, double sellProfit)
{
if(ObjectFind(0, labelName) == -1)
{
ObjectCreate(0, labelName, OBJ_LABEL, 0, 0, 0);
}
ObjectSetInteger(0, labelName, OBJPROP_CORNER, CORNER_LEFT_LOWER);
ObjectSetInteger(0, labelName, OBJPROP_XDISTANCE, 10);
ObjectSetInteger(0, labelName, OBJPROP_YDISTANCE, spaceFromBottom);
ObjectSetInteger(0, labelName, OBJPROP_COLOR, labelColor);
ObjectSetInteger(0, labelName, OBJPROP_FONTSIZE, labelFontSize);
ObjectSetInteger(0, labelName, OBJPROP_SELECTABLE, false);
ObjectSetInteger(0, labelName, OBJPROP_SELECTED, false);
ObjectSetString(0, labelName, OBJPROP_TEXT, labelText);
if(ObjectFind(0, updatedLabelName) == -1)
{
ObjectCreate(0, updatedLabelName, OBJ_LABEL, 0, 0, 0);
}
ObjectSetInteger(0, updatedLabelName, OBJPROP_CORNER, CORNER_LEFT_LOWER);
ObjectSetInteger(0, updatedLabelName, OBJPROP_XDISTANCE, 10);
ObjectSetInteger(0, updatedLabelName, OBJPROP_YDISTANCE, updatedSpaceFromBottom);
ObjectSetInteger(0, updatedLabelName, OBJPROP_COLOR, updatedLabelColor);
ObjectSetInteger(0, updatedLabelName, OBJPROP_FONTSIZE, updatedLabelFontSize);
ObjectSetString(0, updatedLabelName, OBJPROP_TEXT, updatedLabelText);
// Create or update the buy profit label
string buyProfitText = "Overall Buy Profit: " + DoubleToString(buyProfit, 2);
if(ObjectFind(0, buyProfitLabelName) == -1)
{
ObjectCreate(0, buyProfitLabelName, OBJ_LABEL, 0, 0, 0);
}
ObjectSetInteger(0, buyProfitLabelName, OBJPROP_CORNER, CORNER_LEFT_UPPER);
ObjectSetInteger(0, buyProfitLabelName, OBJPROP_XDISTANCE, 20);
ObjectSetInteger(0, buyProfitLabelName, OBJPROP_YDISTANCE, spaceFromBottom - 6); // Adjusted Y position
ObjectSetInteger(0, buyProfitLabelName, OBJPROP_COLOR, profitLabelColor);
ObjectSetInteger(0, buyProfitLabelName, OBJPROP_FONTSIZE, labelFontSize);
ObjectSetInteger(0, buyProfitLabelName, OBJPROP_SELECTABLE, false);
ObjectSetInteger(0, buyProfitLabelName, OBJPROP_SELECTED, false);
ObjectSetString(0, buyProfitLabelName, OBJPROP_TEXT, buyProfitText);
// Create or update the sell profit label
string sellProfitText = "Overall Sell Profit: " + DoubleToString(sellProfit, 2);
if(ObjectFind(0, sellProfitLabelName) == -1)
{
ObjectCreate(0, sellProfitLabelName, OBJ_LABEL, 0, 0, 0);
}
ObjectSetInteger(0, sellProfitLabelName, OBJPROP_CORNER, CORNER_LEFT_UPPER);
ObjectSetInteger(0, sellProfitLabelName, OBJPROP_XDISTANCE, 20);
ObjectSetInteger(0, sellProfitLabelName, OBJPROP_YDISTANCE, spaceFromBottom - 36); // Adjusted Y position
ObjectSetInteger(0, sellProfitLabelName, OBJPROP_COLOR, lossLabelColor);
ObjectSetInteger(0, sellProfitLabelName, OBJPROP_FONTSIZE, labelFontSize);
ObjectSetInteger(0, sellProfitLabelName, OBJPROP_SELECTABLE, false);
ObjectSetInteger(0, sellProfitLabelName, OBJPROP_SELECTED, false);
ObjectSetString(0, sellProfitLabelName, OBJPROP_TEXT, sellProfitText);
}
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
createOrUpdateLabels(0.0, 0.0); // Initialize labels with 0 profit and trade counts
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
// Delete the main EA label
if(ObjectFind(0, labelName) != -1)
ObjectDelete(0, labelName);
// Delete the updated version label
if(ObjectFind(0, updatedLabelName) != -1)
ObjectDelete(0, updatedLabelName);
// Delete the buy profit label
if(ObjectFind(0, buyProfitLabelName) != -1)
ObjectDelete(0, buyProfitLabelName);
// Delete the sell profit label
if(ObjectFind(0, sellProfitLabelName) != -1)
ObjectDelete(0, sellProfitLabelName);
Print("All labels have been removed.");
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
double totalBuyProfit = 0.0;
double totalSellProfit = 0.0;
// Calculate total buy and sell profits and count trades
for(int i = OrdersTotal() - 1; i >= 0; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderSymbol() == _Symbol)
{
if(OrderType() == OP_BUY)
{
totalBuyProfit += OrderProfit();
}
else
if(OrderType() == OP_SELL)
{
totalSellProfit += OrderProfit();
}
}
}
createOrUpdateLabels(totalBuyProfit, totalSellProfit);
CloseProfitableTradesOnMACrossover();
}
//+------------------------------------------------------------------+
//| Close Profitable Trades On MA Crossover |
//+------------------------------------------------------------------+
void CloseProfitableTradesOnMACrossover()
{
double fastMA = iMA(NULL, 0, fastMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);
double slowMA = iMA(NULL, 0, slowMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);
double fastMA_prev = iMA(NULL, 0, fastMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);
double slowMA_prev = iMA(NULL, 0, slowMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);
// Check for crossover
bool bullishCrossover = fastMA_prev < slowMA_prev && fastMA > slowMA;
bool bearishCrossover = fastMA_prev > slowMA_prev && fastMA < slowMA;
if(bullishCrossover || bearishCrossover)
{
// Loop through all open trades
int totalOrders = OrdersTotal();
if(totalOrders == 0)
{
Print("No open orders found.");
return;
}
for(int i = totalOrders - 1; i >= 0; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
// Check if the trade is profitable
double profit = OrderProfit();
if(profit >= 0)
{
// Attempt to close the order
bool closed = false;
if(OrderType() == OP_BUY)
{
closed = OrderClose(OrderTicket(), OrderLots(), Bid, 2, clrRed);
if(closed)
Print("Closed profitable Buy order ", OrderTicket(), " with profit: ", profit);
else
Print("Error closing Buy order ", OrderTicket(), ": Error code ", GetLastError());
}
else
if(OrderType() == OP_SELL)
{
closed = OrderClose(OrderTicket(), OrderLots(), Ask, 2, clrRed);
if(closed)
Print("Closed profitable Sell order ", OrderTicket(), " with profit: ", profit);
else
Print("Error closing Sell order ", OrderTicket(), ": Error code ", GetLastError());
}
}
else
{
Print("Order ", OrderTicket(), " is not profitable, skipping.");
}
}
else
{
Print("Error selecting order ", i, ": Error code ", GetLastError());
}
}
}
}
//+------------------------------------------------------------------+
Откликнулись
1
Оценка
Проекты
362
30%
Арбитраж
37
27%
/
65%
Просрочено
10
3%
Загружен
Опубликовал: 10 примеров
2
Оценка
Проекты
209
61%
Арбитраж
10
80%
/
0%
Просрочено
0
Свободен
Опубликовал: 1 пример
3
Оценка
Проекты
570
37%
Арбитраж
106
39%
/
33%
Просрочено
17
3%
Свободен
4
Оценка
Проекты
2
0%
Арбитраж
1
0%
/
0%
Просрочено
0
Свободен
5
Оценка
Проекты
403
28%
Арбитраж
40
40%
/
50%
Просрочено
1
0%
Свободен
6
Оценка
Проекты
741
34%
Арбитраж
49
53%
/
39%
Просрочено
15
2%
Работает
7
Оценка
Проекты
269
29%
Арбитраж
2
50%
/
0%
Просрочено
3
1%
Работает
Опубликовал: 2 примера
8
Оценка
Проекты
478
40%
Арбитраж
105
40%
/
24%
Просрочено
82
17%
Загружен
Опубликовал: 2 примера
Похожие заказы
I am interested in developing a custom Expert Advisor (EA) similar to the following MQL5 product: Reference EA: https://www.mql5.com/en/market/product/199258 Project Requirements Before starting development, I want you to carefully study and analyze the reference EA in detail. Please examine its available description, trading strategy, entry and exit logic, risk management, position management, trading behavior, and
MT5 Expert Advisor – EMA Crossover Trading Robot
70 - 120 USD
I need an experienced MQL5 developer to create a simple automated trading Expert Advisor for MetaTrader 5. Trading Strategy Platform: MetaTrader 5 (MQL5). Symbol: EURUSD. Timeframe: M15. Indicators: EMA 20 (fast) and EMA 50 (slow), calculated using closing prices. Entry Rules Buy: EMA 20 crosses above EMA 50 on a completed candle. Sell: EMA 20 crosses below EMA 50 on a completed candle. All signals must be confirmed
I'
5000+ USD
من یک معامله گر روزانه نینجا هستم و با شرکتی به نام Legendary Trader کار کرده ام و از استراتژی های مشخص شده و خودکار آن ها برای معامله استفاده می کنم
Automate this Video Strategy
35 - 100 USD
https://www.youtube.com/watch?v=xMNx8f-aGQE& ;t=56s risk 1% per trade watch the video carefully and automate the trade setups in XAUUSD i prefer picking the least drawdown and good return expert advisor do not use overfitting(Strict) account type : hedging
Vb flesh
30+ USD
#property strict #property version "1.00" #include <Trade/Trade.mqh> CTrade trade; // ===== ROBOT SETTINGS ===== input double Lots = 0.01; input int FastEMA = 9; // Blue line input int SlowEMA = 21; // Red line input int StopLossPoints = 300; input int TakeProfitPoints = 600; input ulong MagicNumber = 123456; // ===== INDICATOR HANDLES ===== int blueHandle; int redHandle; datetime lastBar = 0;
Bonjour , je cherche quelqu’un capable de crée un bot sur le gold type HFT , ouverture de plusieurs positions en quelques secondes , robot agressif , je cherche un robot qui marche sur du réel , qui a déjà était tester avec des résultats, pas basé que sur des backtest
Hello, I'm looking for an experienced MQL5 developer to build a clean and reliable Opening Range Breakout Expert Advisor for MetaTrader 5. I have previously experienced problems with EAs placing duplicate pending orders after terminal or VPS restarts. My priority is reliable execution, sensible risk management and an EA that I can confidently test and maintain. 1. Opening Range Strategy Platform: MetaTrader 5
Expert for gold (xauusd) mt5 scalping
80 - 120 USD
Hi everyone. I came across a bot named ( Super Scalping EA Gold Tick Scalper ) in the free bots section on MQL5, and I’ve seen its trading results over a two-year period. I would like one of you to create a similar bot for gold trading that achieves the same (or very similar) results, but within a shorter timeframe—specifically 6 to 8 months. I also need the bot to be suitable for both small accounts ($30–$50) and
Decrypt ex5 file for mt5 and recreate EA for mt5
30 - 80 USD
i have existing EA but its decrypted i dont have its source code , i want you to decrypt the EA and give me the original source code of it
Custom MT5 Trading Robot for Gold and Forex
200 - 300 USD
Project: Custom MT5 Day Trading Expert Advisor I need a custom automated trading robot (EA) for MetaTrader 5, developed in MQL5. Markets: - Gold (XAUUSD) - Selected Forex pairs Trading style: Automated day trading. All positions should be closed according to predefined strategy rules and before the end of the selected trading session. Strategy: The developer should propose a clear trading strategy, explain its rules
Информация о проекте
Бюджет
40+ USD