Initial commit: MQL5 Scripts Collection (MetaTrader 5)
|
After Width: | Height: | Size: 103 KiB |
|
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!
|
||||
|
||||
---
|
||||

|
||||

|
||||

|
||||
|
||||
## Source Files
|
||||
- `4click_trade_opener_v1.1.mq5`
|
||||
|
||||
---
|
||||
> Made with ❤️ for the trading community.
|
||||
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
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!
|
||||
|
||||
---
|
||||

|
||||

|
||||
|
||||
## Source Files
|
||||
- `rates_total.mq5`
|
||||
|
||||
---
|
||||
> Made with ❤️ for the trading community.
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
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);
|
||||
}
|
||||
//+------------------------------------------------------------------+
|
||||
|
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!
|
||||
|
||||
---
|
||||

|
||||

|
||||
|
||||
## 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);
|
||||
}
|
||||
//+------------------------------------------------------------------+
|
||||
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
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!
|
||||
|
||||
---
|
||||

|
||||

|
||||
|
||||
## Source Files
|
||||
- `alphabet.mq5`
|
||||
|
||||
---
|
||||
> Made with ❤️ for the trading community.
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
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!
|
||||
|
||||
---
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## 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
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
//+------------------------------------------------------------------+
|
||||
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 153 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 47 KiB |
|
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!
|
||||
|
||||
---
|
||||

|
||||

|
||||

|
||||
|
||||
## Source Files
|
||||
- `canvas_background.mq5`
|
||||
|
||||
---
|
||||
> Made with ❤️ for the trading community.
|
||||
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 132 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
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!
|
||||
|
||||
---
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## Source Files
|
||||
- `arrowdrawingindieu.mq5`
|
||||
|
||||
---
|
||||
> Made with ❤️ for the trading community.
|
||||
|
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);
|
||||
}
|
||||
//+------------------------------------------------------------------+
|
||||
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
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!
|
||||
|
||||
---
|
||||

|
||||

|
||||
|
||||
## Source Files
|
||||
- `sct_priceaction_allpotentialentries.mq5`
|
||||
|
||||
---
|
||||
> Made with ❤️ for the trading community.
|
||||
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
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!
|
||||
|
||||
---
|
||||

|
||||

|
||||
|
||||
## 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
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!
|
||||
|
||||
---
|
||||

|
||||

|
||||
|
||||
## Source Files
|
||||
- `webrequest_publicationscript.mq5`
|
||||
|
||||
---
|
||||
> Made with ❤️ for the trading community.
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
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!
|
||||
|
||||
---
|
||||

|
||||

|
||||
|
||||
## Source Files
|
||||
- `average_intraday_range.mq5`
|
||||
|
||||
---
|
||||
> Made with ❤️ for the trading community.
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
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!
|
||||
|
||||
---
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## Source Files
|
||||
- `dummy.mq5`
|
||||
|
||||
---
|
||||
> Made with ❤️ for the trading community.
|
||||
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
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!
|
||||
|
||||
---
|
||||

|
||||

|
||||

|
||||
|
||||
## 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;
|
||||
}
|
||||
//+------------------------------------------------------------------+
|
||||
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 119 KiB |
|
After Width: | Height: | Size: 182 KiB |