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
Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

@@ -0,0 +1,21 @@
# 🚀 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](4click_Trade_Opener-0.png)
![Screenshot](4click_Trade_Opener-1__2.png)
![Screenshot](script.png)
## Source Files
- `4click_trade_opener_v1.1.mq5`
---
> Made with ❤️ for the trading community.
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

@@ -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
- `rates_total.mq5`
---
> Made with ❤️ for the trading community.
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

@@ -0,0 +1,20 @@
//+------------------------------------------------------------------+
//| rates_total.mq5 |
//| Copyright 2023, MetaQuotes Ltd. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2025, Sam Beatson, PhD."
#property link "https://www.sambeatson.com"
#property version "1.00"
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//---
long bars_total = iBars(_Symbol, _Period); //Get the total bars on the chart
Print("Number of bars on the current chart: ", bars_total);
Comment("No. bars: ", bars_total);
}
//+------------------------------------------------------------------+
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

@@ -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
- `accounthistoryexport.mq5`
---
> Made with ❤️ for the trading community.
@@ -0,0 +1,60 @@
//+------------------------------------------------------------------+
//| AccountHistoryExport.mq5 |
//| Copyright 2021, Yuriy Bykov |
//| https://www.mql5.com/ru/code/37495 |
//| https://www.mql5.com/en/code/38976 |
//| https://www.mql5.com/en/code/38935 |
//| https://www.mql5.com/en/code/38975 |
//| https://www.mql5.com/ru/market/product/75526 |
//+------------------------------------------------------------------+
#property description "Export deals history for current account to CSV-file"
#property copyright "Copyright 2021, Yuriy Bykov"
#property link "https://www.mql5.com/ru/code/37495"
#property link "https://www.mql5.com/ru/code/38976"
#property link "https://www.mql5.com/en/code/38935"
#property link "https://www.mql5.com/en/code/38975"
#property link "https://www.mql5.com/ru/market/product/75526"
#property version "1.2"
#property strict
#property script_show_inputs
enum ENUM_EXRORT_DATA_FORMAT {
EDF_COMMA_POINT, // For data: ',' (comma) / For Decimal: '.' (dot)
EDF_COMMA_COMMA, // For data: ',' (comma) / For Decimal: ',' (comma)
EDF_SEMI_POINT, // For data: ';' (semicolon) / For Decimal: '.' (dot)
EDF_SEMI_COMMA, // For data: ';' (semicolon) / For Decimal: ',' (comma)
};
#include <ExpertHistory.mqh>
input string accountName = ""; // Name for file. Auto-generating if it is blank
input ENUM_EXRORT_DATA_FORMAT exportDataFormat = EDF_COMMA_POINT; // Separators
input bool useCommonFolder = false; // Save file to Common Folder
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart() {
//---
string separator = ",";
string decimalPoint = ".";
uint commonFlag = 0;
if(exportDataFormat == EDF_SEMI_COMMA || exportDataFormat == EDF_SEMI_POINT) {
separator = ";";
}
if(exportDataFormat == EDF_COMMA_COMMA || exportDataFormat == EDF_SEMI_COMMA) {
decimalPoint = ",";
}
if(useCommonFolder) {
commonFlag = FILE_COMMON;
}
CExpertHistory accountHistory(accountName, "", separator, decimalPoint);
accountHistory.Export(accountName, HEF_CSV_DEALS, HFF_ACCOUNT_PERIOD, commonFlag);
}
//+------------------------------------------------------------------+
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

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

@@ -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
- `alphabet.mq5`
---
> Made with ❤️ for the trading community.
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

@@ -0,0 +1,22 @@
# 🚀 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](forex-script-template_.png)
![Screenshot](opcao-binaria-indicador_.png)
![Screenshot](script-binary-option__2.png)
![Screenshot](script.png)
## Source Files
- `apply_template.mq5`
---
> Made with ❤️ for the trading community.
@@ -0,0 +1,47 @@
//+------------------------------------------------------------------+
//| apply_template.mq5 |
//| Copyright 2014, byJJ |
//| http://ideiasparainvestir.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, by JJ"
#property link "http://ideiasparainvestir.com"
#property version "1.00"
#property script_show_inputs
#property description "Simple Script for Apply Template and/or timeframe in all charts opened"
#include <Charts\Chart.mqh>;
input ENUM_TIMEFRAMES tempo_grafico; // Change TimeFrame - Current = dont changed
input string template_name="D"; // Name of Template (without '.tpl')
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
long currChart,prevChart=ChartFirst();
int i=0,limit=100;
bool errTemplate;
while(i<limit)
{
currChart=ChartNext(prevChart); // Obter o ID do novo gráfico usando o ID gráfico anterior
// Se o tempo grafico e diferente aplica a todos
if(tempo_grafico!=PERIOD_CURRENT)
{
ChartSetSymbolPeriod(prevChart,ChartSymbol(prevChart),tempo_grafico);
}
// Aplica a template
errTemplate=ChartApplyTemplate(prevChart,template_name+".tpl");
if(!errTemplate)
{
Print("Erro ao adicionar a template a ",ChartSymbol(prevChart),"-> ",GetLastError());
}
if(currChart<0) break; // Ter atingido o fim da lista de gráfico
Print(i,ChartSymbol(currChart)," ID =",currChart);
prevChart=currChart;// vamos salvar o ID do gráfico atual para o ChartNext()
i++;// Não esqueça de aumentar o contador
}
}
//+------------------------------------------------------------------+
Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

@@ -0,0 +1,21 @@
# 🚀 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](2808252026162__1.png)
![Screenshot](4604556312269__1.png)
![Screenshot](script.png)
## Source Files
- `canvas_background.mq5`
---
> Made with ❤️ for the trading community.
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

@@ -0,0 +1,24 @@
# 🚀 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](BuffersValueDefault__4.png)
![Screenshot](ICustom__4.png)
![Screenshot](Input__2.png)
![Screenshot](library.png)
![Screenshot](script.png)
![Screenshot](ValueOfBuffers__1.png)
## Source Files
- `arrowdrawingindieu.mq5`
---
> Made with ❤️ for the trading community.
Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

@@ -0,0 +1,107 @@
//+------------------------------------------------------------------+
//| ArrowDrawingIndi.mq5 |
//| Copyright 2019, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property indicator_chart_window
int MA_handle;
//-----------------------------------------------------
input string IndName=""; // Indicator name
input string ArrowUp="MyArrowUp"; // Name of up Signal
input string ArrowDown="MyArrowDown"; // Name of down Signal
input int upbuffer=1; // Number of up buffer
input int downbuffer=0; // Number of down buffer
//-----------------------------------------------------------------
double Label1Buffer[];
double Label1Buffer2[];
int timerup=0;
int timerdown=0;
datetime CurTime=0;
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- indicator buffers mapping
MA_handle=iCustom(Symbol(),0,IndName,17,0,2,0,false,false,false);
//MA_handle=iCustom(Symbol(),0,IndName,param1, param2, param3, param4); // <-----------------Example of adding your params here
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int OnDeinit()
{
//--- indicator buffers mapping
ObjectDelete(0,ArrowUp);
ObjectDelete(0,ArrowDown);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
CurTime=time[rates_total-1];
if(timerup>0)
{timerup --;}
else
{
ObjectDelete(0,ArrowUp);
}
if(timerdown>0)
{timerdown --;}
else
{
ObjectDelete(0,ArrowDown);
}
//---
if(rates_total==prev_calculated)
{
return(rates_total);
}
int i=rates_total-2;
CopyBuffer(MA_handle,upbuffer,0,rates_total,Label1Buffer);
CopyBuffer(MA_handle,downbuffer,0,rates_total,Label1Buffer2);
while(i<rates_total-1)
{
if(Label1Buffer[i]>0 /*&& CurTime<=time[i]*/)
{
ObjectCreate(0,ArrowUp,OBJ_ARROW_BUY,0,time[i],low[i]);timerup=5;
}
if(Label1Buffer2[i]>0 /*&& CurTime<=time[i]*/)
{
ObjectCreate(0,ArrowDown,OBJ_ARROW_SELL,0,time[i],high[i]);timerdown=5;
}
i++;
}
return(rates_total);
}
//+------------------------------------------------------------------+
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 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

@@ -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
- `sct_priceaction_allpotentialentries.mq5`
---
> Made with ❤️ for the trading community.
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 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

@@ -0,0 +1,96 @@
//+------------------------------------------------------------------+
//| PriceAction AllPotentialEntries.mq5 |
//| Copyright 2020, Mario Gharib. |
//| mario.gharib@hotmail.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, Mario Gharib. fxweirdos@gmail.com"
#property link "https://www.mql5.com"
#property version "1.00"
class cCandlestick {
public:
double dOpenPrice, dHighPrice, dLowPrice, dClosePrice, dRangeCandle, dBodyCandle, dUpperWickCandle, dLowerWickCandle;
bool bBullCandle;
bool bBearCandle;
bool bDojiCandle;
void mvGetCandleStickCharateristics (string s, int i) {
dOpenPrice = iOpen(s, PERIOD_CURRENT,i);
dHighPrice = iHigh(s, PERIOD_CURRENT,i);
dLowPrice = iLow(s, PERIOD_CURRENT,i);
dClosePrice = iClose(s, PERIOD_CURRENT,i);
dRangeCandle = NormalizeDouble(MathAbs(dHighPrice-dLowPrice)/SymbolInfoDouble(s,SYMBOL_POINT),_Digits);
dBodyCandle = NormalizeDouble(MathAbs(dOpenPrice-dClosePrice)/SymbolInfoDouble(s,SYMBOL_POINT),_Digits);
dUpperWickCandle = NormalizeDouble(MathAbs(dHighPrice-MathMax(dClosePrice,dOpenPrice))/SymbolInfoDouble(s,SYMBOL_POINT),_Digits);
dLowerWickCandle = NormalizeDouble(MathAbs(MathMin(dClosePrice,dOpenPrice)-dLowPrice)/SymbolInfoDouble(s,SYMBOL_POINT),_Digits);
if (dBodyCandle<=1.0 && dUpperWickCandle>dBodyCandle && dLowerWickCandle>dBodyCandle) {
bDojiCandle=true; bBullCandle=false; bBearCandle=false;}
else if (dOpenPrice<dClosePrice) {
bDojiCandle=false; bBullCandle=true; bBearCandle=false;}
else if (dOpenPrice>dClosePrice) {
bDojiCandle=false; bBullCandle=false; bBearCandle=true;}
}
};
cCandlestick cCS1, cCS2;
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart() {
int z=1;
long chartid=0;
int HowManySymbols=SymbolsTotal(true);
int counter;
for(int i=0;i<HowManySymbols;i++) {
counter=0;
string sArrowBuy1="", sArrowBuy2="", sArrowSell1="", sArrowSell2="";
cCS1.mvGetCandleStickCharateristics(SymbolName(i,true),z);
cCS2.mvGetCandleStickCharateristics(SymbolName(i,true),z+1);
// OPEN CHART TO DOWNLOAD DATA |
chartid=ChartOpen(SymbolName(i,true), PERIOD_CURRENT);
// ===============================================|
// ===============================================|
if (cCS1.bBullCandle && cCS2.bBullCandle && cCS1.dRangeCandle>cCS2.dRangeCandle && cCS1.dBodyCandle>=cCS2.dBodyCandle) {
StringConcatenate(sArrowBuy1,"sArrowBuy1 ",SymbolName(i,true), string(iTime(SymbolName(i,true),PERIOD_CURRENT,z)));
ObjectCreate(chartid,sArrowBuy1,OBJ_ARROW_BUY,0,iTime(SymbolName(i,true),PERIOD_CURRENT,z),cCS1.dLowPrice);
StringConcatenate(sArrowBuy2,"sArrowBuy2 ",SymbolName(i,true), string(iTime(SymbolName(i,true),PERIOD_CURRENT,z+1)));
ObjectCreate(chartid,sArrowBuy2,OBJ_ARROW_BUY,0,iTime(SymbolName(i,true),PERIOD_CURRENT,z+1),cCS2.dLowPrice);
counter++;
}
// ===============================================|
// ===============================================|
if (cCS1.bBearCandle && cCS2.bBearCandle && cCS1.dBodyCandle>cCS2.dBodyCandle && cCS1.dRangeCandle>=cCS2.dRangeCandle) {
StringConcatenate(sArrowSell1,"sArrowSell1 ",SymbolName(i,true),string(iTime(SymbolName(i,true),PERIOD_CURRENT,z)));
ObjectCreate(chartid,sArrowSell1,OBJ_ARROW_SELL,0,iTime(SymbolName(i,true),PERIOD_CURRENT,z),cCS1.dHighPrice);
StringConcatenate(sArrowSell2,"sArrowSell2 ",SymbolName(i,true), string(iTime(SymbolName(i,true),PERIOD_CURRENT,z+1)));
ObjectCreate(chartid,sArrowSell2,OBJ_ARROW_SELL,0,iTime(SymbolName(i,true),PERIOD_CURRENT,z+1),cCS2.dHighPrice);
counter++;
}
if (counter==0)
ChartClose(chartid);
}
}
@@ -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
- `auto_sl_tp_by_risk_reward_ratio.mq5`
---
> Made with ❤️ for the trading community.
@@ -0,0 +1,61 @@
#property copyright "Your Name"
#property link "Your Contact"
#property version "1.00"
#property description "Script to set Stop Loss and Take Profit based on Risk:Reward ratio"
// Include the Trade.mqh file to use CTrade class
#include <Trade\Trade.mqh>
// Input parameters
input double RiskRewardRatio = 2.0; // Risk:Reward Ratio (e.g., 2.0 for 1:2)
input double StopLossPips = 20; // Stop Loss in pips
void OnStart()
{
// Get current symbol
string symbol = Symbol();
double point = SymbolInfoDouble(symbol, SYMBOL_POINT);
double pip_value = point * 10; // Adjust for 5-digit brokers
// Calculate Stop Loss and Take Profit in price units
double sl = StopLossPips * pip_value;
double tp = sl * RiskRewardRatio;
// Get current market price
double bid = SymbolInfoDouble(symbol, SYMBOL_BID);
double ask = SymbolInfoDouble(symbol, SYMBOL_ASK);
// Create a CTrade object
CTrade trade;
// Example: Modify an open position (assumes one open position for simplicity)
for(int i = PositionsTotal() - 1; i >= 0; i--)
{
ulong ticket = PositionGetTicket(i);
if(PositionSelectByTicket(ticket))
{
if(PositionGetString(POSITION_SYMBOL) == symbol)
{
double current_sl = PositionGetDouble(POSITION_SL);
double current_tp = PositionGetDouble(POSITION_TP);
double open_price = PositionGetDouble(POSITION_PRICE_OPEN);
// Set SL and TP based on position type (Buy or Sell)
if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY)
{
current_sl = open_price - sl;
current_tp = open_price + tp;
}
else if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL)
{
current_sl = open_price + sl;
current_tp = open_price - tp;
}
// Modify position
trade.PositionModify(ticket, current_sl, current_tp);
Print("SL and TP set for ticket #", ticket, ": SL=", current_sl, ", TP=", current_tp);
}
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

@@ -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](EURUSDM5__1.png)
![Screenshot](script.png)
## Source Files
- `webrequest_publicationscript.mq5`
---
> Made with ❤️ for the trading community.
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

@@ -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](3269195080130.png)
![Screenshot](script.png)
## Source Files
- `average_intraday_range.mq5`
---
> Made with ❤️ for the trading community.
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

@@ -0,0 +1,24 @@
# 🚀 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](clip0001__1.gif)
![Screenshot](library.png)
![Screenshot](screenshot.20.png)
![Screenshot](screenshot.21.png)
![Screenshot](screenshot.22.png)
![Screenshot](script.png)
## Source Files
- `dummy.mq5`
---
> Made with ❤️ for the trading community.
Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

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: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

@@ -0,0 +1,21 @@
# 🚀 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](NQ100Daily__1.png)
![Screenshot](NQ100M1__1.png)
![Screenshot](script.png)
## Source Files
- `bar_prediction_mashhadi.mq5`
---
> Made with ❤️ for the trading community.
@@ -0,0 +1,131 @@
//+------------------------------------------------------------------+
//| Bar Prediction.mq5 |
//| Copyright 2022, MetaQuotes Ltd. |
//| saeed.h.mashhadi@gmail.com |
//+------------------------------------------------------------------+
#property link "Author: saeed.h.mashhadi@gmail.com"
#property version "1.00"
#property description "The script estimates the bar's High-Low-Close, based on the past."
#property script_show_inputs
#define NAME "Bar Prediction"
//+------------------------------------------------------------------+
//| Script inputs & global variables |
//+------------------------------------------------------------------+
input int Prediction_Bar =0; // Prediction Bar >= -1
input int Win =10; // Comparision Length > 0
input int Num =7; // Prediction Bars # > 0
datetime time[];
MqlRates Rates[];
//+------------------------------------------------------------------+
//| Script "Start" event handler function |
//+------------------------------------------------------------------+
void OnStart()
{
//Print("OnStart");
MathSrand(GetTickCount());
double Objects_Identifier=MathRand();
ArraySetAsSeries(time,true);
ArraySetAsSeries(Rates,true);
int Series_Bars=(int)SeriesInfoInteger(Symbol(),0,SERIES_BARS_COUNT);
CopyTime(Symbol(),NULL,0,MathMin(1000000,Series_Bars),time);
int rates_total=ArraySize(time);
CopyRates(NULL,0,0,rates_total,Rates);
double Array_Ref[][4];
double Array_Test[][4];
double Array_Error[][2];
ArrayResize(Array_Ref,Win);
ArrayResize(Array_Test,Win);
ArrayResize(Array_Error,rates_total-Prediction_Bar-Win-1);
ArrayFill(Array_Error,0,ArraySize(Array_Error),0);
for(int ii=0; ii<Win; ii++)
{
Array_Ref[ii][0]=Rates[Prediction_Bar+1+ii].open/Rates[Prediction_Bar+1].close;
Array_Ref[ii][1]=Rates[Prediction_Bar+1+ii].high/Rates[Prediction_Bar+1].close;
Array_Ref[ii][2]=Rates[Prediction_Bar+1+ii].low/Rates[Prediction_Bar+1].close;
Array_Ref[ii][3]=Rates[Prediction_Bar+1+ii].close/Rates[Prediction_Bar+1].close;
//Print(ii," | ",Array_Ref[ii][0]," | ",Array_Ref[ii][1]," | ",Array_Ref[ii][2]," | ",Array_Ref[ii][3]);
}
for(int jj=0; jj<rates_total-Prediction_Bar-Win-1; jj++)
{
Array_Error[jj][1]=jj;
for(int ii=0; ii<Win; ii++)
{
Array_Test[ii][0]=Rates[Prediction_Bar+1+jj+ii].open/Rates[Prediction_Bar+1+jj].close;
Array_Test[ii][1]=Rates[Prediction_Bar+1+jj+ii].high/Rates[Prediction_Bar+1+jj].close;
Array_Test[ii][2]=Rates[Prediction_Bar+1+jj+ii].low/Rates[Prediction_Bar+1+jj].close;
Array_Test[ii][3]=Rates[Prediction_Bar+1+jj+ii].close/Rates[Prediction_Bar+1+jj].close;
Array_Error[jj][0]=Array_Error[jj][0]+0.0*MathAbs(Array_Test[ii][0]-Array_Ref[ii][0])+1.0*MathAbs(Array_Test[ii][1]-Array_Ref[ii][1])
+1.0*MathAbs(Array_Test[ii][2]-Array_Ref[ii][2])+1.0*MathAbs(Array_Test[ii][3]-Array_Ref[ii][3]);
//Print(jj," | ",ii," | ",Array_Test[ii][0]," | ",Array_Test[ii][1]," | ",Array_Test[ii][2]," | ",Array_Test[ii][3]);
}
//Print(jj," | ",Array_Error[jj][0]);
}
ArraySort(Array_Error);
double High, Low, Close;
int Index=(int)Array_Error[1][1];
for(int ii=0; ii<rates_total-1-(Prediction_Bar+1+Index); ii++)
{
High=Rates[Prediction_Bar+1+Index+ii].high/Rates[Prediction_Bar+1+Index].close*Rates[Prediction_Bar+1].close;
Low=Rates[Prediction_Bar+1+Index+ii].low/Rates[Prediction_Bar+1+Index].close*Rates[Prediction_Bar+1].close;
Close=Rates[Prediction_Bar+1+Index+ii].close/Rates[Prediction_Bar+1+Index].close*Rates[Prediction_Bar+1].close;
ObjectCreate(0,StringFormat("%g_%s_Bar1_%g",Objects_Identifier,NAME,ii),OBJ_TREND,0,time[Prediction_Bar+1+ii],High,time[Prediction_Bar+1+ii],Low);
ObjectSetInteger(0,StringFormat("%g_%s_Bar1_%g",Objects_Identifier,NAME,ii),OBJPROP_WIDTH,5);
ObjectSetInteger(0,StringFormat("%g_%s_Bar1_%g",Objects_Identifier,NAME,ii),OBJPROP_COLOR,clrAqua);
ObjectSetInteger(0,StringFormat("%g_%s_Bar1_%g",Objects_Identifier,NAME,ii),OBJPROP_BACK,true);
ObjectSetInteger(0,StringFormat("%g_%s_Bar1_%g",Objects_Identifier,NAME,ii),OBJPROP_SELECTABLE,false);
ObjectSetInteger(0,StringFormat("%g_%s_Bar1_%g",Objects_Identifier,NAME,ii),OBJPROP_SELECTED,false);
ObjectCreate(0,StringFormat("%g_%s_Close1_%g",Objects_Identifier,NAME,ii),OBJ_TREND,0,time[Prediction_Bar+1+ii],Close,time[Prediction_Bar+1+ii],Close);
ObjectSetInteger(0,StringFormat("%g_%s_Close1_%g",Objects_Identifier,NAME,ii),OBJPROP_WIDTH,7);
ObjectSetInteger(0,StringFormat("%g_%s_Close1_%g",Objects_Identifier,NAME,ii),OBJPROP_COLOR,clrDarkOrange);
ObjectSetInteger(0,StringFormat("%g_%s_Close1_%g",Objects_Identifier,NAME,ii),OBJPROP_BACK,true);
ObjectSetInteger(0,StringFormat("%g_%s_Close1_%g",Objects_Identifier,NAME,ii),OBJPROP_SELECTABLE,false);
ObjectSetInteger(0,StringFormat("%g_%s_Close1_%g",Objects_Identifier,NAME,ii),OBJPROP_SELECTED,false);
}
datetime Time, dt=MathMin(time[0]-time[1],MathMin(time[1]-time[2],MathMin(time[2]-time[3],MathMin(time[3]-time[4],MathMin(time[4]-time[5],time[5]-time[6])))));
for(int ii=1; ii<=Num; ii++)
{
Index=(int)Array_Error[ii][1];
Time=time[Prediction_Bar+1]+ii*dt;
High=Rates[Prediction_Bar+Index].high/Rates[Prediction_Bar+1+Index].close*Rates[Prediction_Bar+1].close;
Low=Rates[Prediction_Bar+Index].low/Rates[Prediction_Bar+1+Index].close*Rates[Prediction_Bar+1].close;
Close=Rates[Prediction_Bar+Index].close/Rates[Prediction_Bar+1+Index].close*Rates[Prediction_Bar+1].close;
if(ii==1)
{
ObjectCreate(0,StringFormat("%g_%s_Ref_%g",Objects_Identifier,NAME,ii),OBJ_VLINE,0,Time,Close);
ObjectSetInteger(0,StringFormat("%g_%s_Ref_%g",Objects_Identifier,NAME,ii),OBJPROP_WIDTH,2);
ObjectSetInteger(0,StringFormat("%g_%s_Ref_%g",Objects_Identifier,NAME,ii),OBJPROP_COLOR,clrDarkOrange);
ObjectSetInteger(0,StringFormat("%g_%s_Ref_%g",Objects_Identifier,NAME,ii),OBJPROP_BACK,true);
ObjectSetInteger(0,StringFormat("%g_%s_Ref_%g",Objects_Identifier,NAME,ii),OBJPROP_SELECTABLE,false);
ObjectSetInteger(0,StringFormat("%g_%s_Ref_%g",Objects_Identifier,NAME,ii),OBJPROP_SELECTED,false);
}
ObjectCreate(0,StringFormat("%g_%s_Bar2_%g",Objects_Identifier,NAME,ii),OBJ_TREND,0,Time,High,Time,Low);
ObjectSetInteger(0,StringFormat("%g_%s_Bar2_%g",Objects_Identifier,NAME,ii),OBJPROP_WIDTH,5);
ObjectSetInteger(0,StringFormat("%g_%s_Bar2_%g",Objects_Identifier,NAME,ii),OBJPROP_COLOR,clrLime);
ObjectSetInteger(0,StringFormat("%g_%s_Bar2_%g",Objects_Identifier,NAME,ii),OBJPROP_BACK,true);
ObjectSetInteger(0,StringFormat("%g_%s_Bar2_%g",Objects_Identifier,NAME,ii),OBJPROP_SELECTABLE,false);
ObjectSetInteger(0,StringFormat("%g_%s_Bar2_%g",Objects_Identifier,NAME,ii),OBJPROP_SELECTED,false);
ObjectCreate(0,StringFormat("%g_%s_Close2_%g",Objects_Identifier,NAME,ii),OBJ_TREND,0,Time,Close,Time,Close);
ObjectSetInteger(0,StringFormat("%g_%s_Close2_%g",Objects_Identifier,NAME,ii),OBJPROP_WIDTH,7);
ObjectSetInteger(0,StringFormat("%g_%s_Close2_%g",Objects_Identifier,NAME,ii),OBJPROP_COLOR,clrDarkOrange);
ObjectSetInteger(0,StringFormat("%g_%s_Close2_%g",Objects_Identifier,NAME,ii),OBJPROP_BACK,true);
ObjectSetInteger(0,StringFormat("%g_%s_Close2_%g",Objects_Identifier,NAME,ii),OBJPROP_SELECTABLE,false);
ObjectSetInteger(0,StringFormat("%g_%s_Close2_%g",Objects_Identifier,NAME,ii),OBJPROP_SELECTED,false);
}
return;
}
//+------------------------------------------------------------------+
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

Some files were not shown because too many files have changed in this diff Show More