Initial commit: MQL5 Scripts Collection (MetaTrader 5)

This commit is contained in:
GeneralTradingSarl
2025-06-24 00:33:04 +01:00
commit 60a549d89c
1959 changed files with 31907 additions and 0 deletions
@@ -0,0 +1,20 @@
# 🚀 Unlock the Power of Trading!
Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring ⭐, sharing, or donating to support further development!
---
**Support the project:**
- Star this repository on GitHub
- Share it with your trading friends
- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow!
---
![Screenshot](library.png)
![Screenshot](script.png)
## Source Files
- `comebacker.mq5`
---
> Made with ❤️ for the trading community.
@@ -0,0 +1,92 @@
#property copyright "Mokara"
#property link "https://www.mql5.com/en/users/mokara"
#property description "ComeBacker Trading"
#property version "1.0"
#property script_show_inputs true
input int lastBars = 20; //Bar Count for Limits
input double ratePL = 2.0; //Profit/Loss Ratio
input int profitOffset = 0; //Additional Profit
input double lots = 0.1; //Lots
int bHighest, bLowest;
double pHighest, pLowest, pCurrent, pTakeProfit, pStopLoss;
string objName = "";
MqlRates Rates[];
MqlTradeRequest tReq = {0};
MqlTradeResult tRes = {0};
enum TYPE_POS{
POS_LONG,
POS_SHORT
}tPos;
void DrawVLine(string n, int c, int s, datetime x){ //name, color, style, x-coordinate
if(ObjectFind(0, n) == 0) ObjectDelete(0, n);
ObjectCreate(0, n, OBJ_VLINE, 0, x, 0);
ObjectSetInteger(0, n, OBJPROP_COLOR, c);
ObjectSetInteger(0, n, OBJPROP_STYLE, s);
}
void DrawHLine(string n, int c, int s, double y){ //name, color, style, y-coordinate
if(ObjectFind(0, n) == 0) ObjectDelete(0, n);
ObjectCreate(0, n, OBJ_HLINE, 0, 0, y);
ObjectSetInteger(0, n, OBJPROP_COLOR, c);
ObjectSetInteger(0, n, OBJPROP_STYLE, s);
}
void OnStart(){
ArraySetAsSeries(Rates, true);
ArrayResize(Rates, lastBars);
CopyRates(_Symbol, _Period, 0, lastBars, Rates);
bHighest = iHighest(_Symbol, _Period, MODE_HIGH, lastBars, 0);
bLowest = iLowest(_Symbol, _Period, MODE_LOW, lastBars, 0);
pHighest = NormalizeDouble(Rates[bHighest].high, _Digits);
pLowest = NormalizeDouble(Rates[bLowest].low, _Digits);
if(bHighest < bLowest){ //highest occured last
tPos = POS_LONG;
pCurrent = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
pTakeProfit = pHighest + profitOffset * _Point;
pStopLoss = pCurrent - (pTakeProfit - pCurrent) / ratePL;
DrawVLine("ComeBacker - Start", clrAqua, STYLE_DOT, Rates[bHighest].time);
DrawHLine("ComeBacker - Entry", clrAqua, STYLE_DOT, pCurrent);
DrawHLine("ComeBacker - Take Profit", clrLimeGreen, STYLE_SOLID, pTakeProfit);
DrawHLine("ComeBacker - Stop Loss", clrRed, STYLE_SOLID, pStopLoss);
tReq.symbol = _Symbol;
tReq.type = ORDER_TYPE_BUY;
tReq.volume = lots;
tReq.action = TRADE_ACTION_DEAL;
tReq.deviation = 5;
tReq.magic = 999;
tReq.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
tReq.tp = pTakeProfit;
tReq.sl = pStopLoss;
if(!OrderSend(tReq, tRes)){
Print("ERROR: order send. "+ _Symbol + " / " + IntegerToString(GetLastError()));
return;
}
}
else{ //lowest occcured last or highest/lowest on same bar
tPos = POS_SHORT;
pCurrent = SymbolInfoDouble(_Symbol, SYMBOL_BID);
pTakeProfit = pLowest - profitOffset * _Point;;
pStopLoss = pCurrent + (pCurrent - pTakeProfit) / ratePL;
DrawVLine("ComeBacker - Start", clrAqua, STYLE_DOT, Rates[bLowest].time);
DrawHLine("ComeBacker - Entry", clrAqua, STYLE_DOT, pCurrent);
DrawHLine("ComeBacker - Take Profit", clrLimeGreen, STYLE_SOLID, pTakeProfit);
DrawHLine("ComeBacker - Stop Loss", clrRed, STYLE_SOLID, pStopLoss);
tReq.symbol = _Symbol;
tReq.type = ORDER_TYPE_SELL;
tReq.volume = lots;
tReq.action = TRADE_ACTION_DEAL;
tReq.deviation = 5;
tReq.magic = 999;
tReq.price = SymbolInfoDouble(_Symbol, SYMBOL_BID);
tReq.tp = pTakeProfit;
tReq.sl = pStopLoss;
if(!OrderSend(tReq, tRes)){
Print("ERROR: order send. "+ _Symbol + " / " + IntegerToString(GetLastError()));
return;
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB