mirror of
https://github.com/rithsila/MT5-EA-Sniper-Strategy.git
synced 2026-08-16 20:28:11 +00:00
Done muzzling the alligator. Need to test telegram push notification on demo environment
This commit is contained in:
@@ -0,0 +1,172 @@
|
||||
//+------------------------------------------------------------------+
|
||||
//| MuzzlingAlligatorWatcher.mq5 |
|
||||
//| Copyright 2022, Nkondog Anselme Venceslas. |
|
||||
//| https://www.linkedin.com/in/nkondog |
|
||||
//+------------------------------------------------------------------+
|
||||
#property copyright "Copyright 2022, Nkondog Anselme Venceslas."
|
||||
#property link "https://www.linkedin.com/in/nkondog"
|
||||
#property version "1.00"
|
||||
|
||||
#include <Indicators/BillWilliams.mqh>
|
||||
#include <Indicators/Trend.mqh>
|
||||
|
||||
CiAlligator* alligator;
|
||||
CiMA* ma;
|
||||
|
||||
input string Comment_0="=========="; //Alligator parameters
|
||||
input ENUM_TIMEFRAMES inpTimeframe = PERIOD_CURRENT; //Timeframe
|
||||
input int inpJawsPeriod = 13; //Jaws period
|
||||
input int inpJawsShift = 8; //Jaws shift
|
||||
input int inpTeethPeriod = 8; //Teeth period
|
||||
input int inpTeethShift = 5; //Teeth shift
|
||||
input int inpLipsPeriod = 5; //Lips period
|
||||
input int inpLipsShift = 3; //Lips shift
|
||||
input ENUM_MA_METHOD inpMethod = MODE_SMMA; //Method
|
||||
input ENUM_APPLIED_PRICE inpApplyedTo = PRICE_MEDIAN; //Applied to
|
||||
|
||||
input string Comment_1="=========="; //Moving average parameters
|
||||
input ENUM_MA_METHOD inpMAMethod = MODE_SMA; //MA method
|
||||
input int inpMAPeriod = 200; //MA period
|
||||
input int inpMASHift = 0; //MA shift
|
||||
input ENUM_APPLIED_PRICE inpMAApplyedTo = PRICE_CLOSE; //MA applied to
|
||||
|
||||
|
||||
double jaws, teeth, lips, sma, prevCandleHigh, prevCandleLow, currentPrice, openPrice, candleClose;
|
||||
string symb = Symbol();
|
||||
string comm = "";
|
||||
//+------------------------------------------------------------------+
|
||||
//| Expert initialization function |
|
||||
//+------------------------------------------------------------------+
|
||||
int OnInit()
|
||||
{
|
||||
//---
|
||||
alligator = new CiAlligator();
|
||||
alligator.Create(symb, inpTimeframe, inpJawsPeriod, inpJawsShift, inpTeethPeriod, inpTeethShift, inpLipsPeriod, inpLipsShift, inpMethod, inpApplyedTo);
|
||||
|
||||
ma = new CiMA();
|
||||
ma.Create(symb, inpTimeframe, inpMAPeriod, inpMASHift, inpMAMethod, inpMAApplyedTo);
|
||||
//---
|
||||
return(INIT_SUCCEEDED);
|
||||
}
|
||||
//+------------------------------------------------------------------+
|
||||
//| Expert deinitialization function |
|
||||
//+------------------------------------------------------------------+
|
||||
void OnDeinit(const int reason)
|
||||
{
|
||||
//---
|
||||
|
||||
}
|
||||
//+------------------------------------------------------------------+
|
||||
//| Expert tick function |
|
||||
//+------------------------------------------------------------------+
|
||||
void OnTick()
|
||||
{
|
||||
//---
|
||||
//Alligator variables initialization
|
||||
alligator.Refresh(-1);
|
||||
jaws = NormalizeDouble(alligator.Jaw(0), _Digits);
|
||||
teeth = NormalizeDouble(alligator.Teeth(0), _Digits);
|
||||
lips = NormalizeDouble(alligator.Lips(0), _Digits);
|
||||
|
||||
//Moving Average variable initialization
|
||||
ma.Refresh(-1);
|
||||
sma = NormalizeDouble(ma.Main(1), _Digits);
|
||||
|
||||
//Get previous candle
|
||||
prevCandleHigh = iHigh(symb, PERIOD_CURRENT, 1);
|
||||
prevCandleLow = iLow(symb, PERIOD_CURRENT, 1);
|
||||
currentPrice = iClose(symb, PERIOD_CURRENT, 0);
|
||||
candleClose = iLow(symb, PERIOD_CURRENT, 0);
|
||||
|
||||
//comm = "jaws " + (string)jaws + " teeth " + (string)teeth + " lips " + (string)lips + " sma " + (string)sma;
|
||||
comm = "Trade alert on " + symb;
|
||||
comm += "\n";
|
||||
comm += "";
|
||||
|
||||
|
||||
if(sma < currentPrice)
|
||||
{
|
||||
//Alert for bullish continuation signal
|
||||
if(prevCandleHigh > jaws && prevCandleHigh > teeth && prevCandleHigh > lips)
|
||||
{
|
||||
if(prevCandleLow < jaws || prevCandleLow < teeth ||prevCandleLow < lips)
|
||||
{
|
||||
comm += "LONG CONTINUATION SIGNAL: Price above SMA just moves above Alligator. \n";
|
||||
}
|
||||
}
|
||||
|
||||
//Alert for bearish counter trend signal
|
||||
if(lips > teeth && teeth > jaws)
|
||||
{
|
||||
|
||||
if(candleClose < lips && candleClose < teeth && candleClose < jaws)
|
||||
{
|
||||
comm += "SHORT COUNTER TREND SIGNAL: Price above SMA moves below Alligator in a trending market \n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(sma > currentPrice)
|
||||
{
|
||||
//Alert for bearish continuation signal
|
||||
if(prevCandleLow < jaws && prevCandleLow < teeth && prevCandleLow < lips)
|
||||
{
|
||||
if(prevCandleHigh > jaws || prevCandleHigh > teeth ||prevCandleHigh > lips)
|
||||
{
|
||||
comm += "SHORT CONTINUATION SIGNAL: Price below SMA just moves below Alligator. \n";
|
||||
}
|
||||
}
|
||||
|
||||
//Alert for bearish counter trend signal
|
||||
if(lips < teeth && teeth < jaws)
|
||||
{
|
||||
|
||||
if(candleClose > lips && candleClose > teeth && candleClose > jaws)
|
||||
{
|
||||
comm += "LONG COUNTER TREND SIGNAL: Price below SMA just closes above Alligator in a down trending market \n";
|
||||
}
|
||||
}
|
||||
}
|
||||
Notify(comm);
|
||||
|
||||
}
|
||||
|
||||
//+------------------------------------------------------------------+
|
||||
void Notify(string message)
|
||||
{
|
||||
|
||||
SendNotification(message);
|
||||
|
||||
string headers;
|
||||
string url = "https://api.telegram.org/bot1203586996:AAF3GTCy2yVyvXsCjd9pODhJncTUG7NcOKw/sendMessage?chat_id=-457969372&text="+message;
|
||||
char data[],result[];
|
||||
|
||||
int res = WebRequest("GET",
|
||||
url,
|
||||
NULL,
|
||||
NULL,
|
||||
3000,
|
||||
data,
|
||||
0,
|
||||
result,
|
||||
headers
|
||||
);
|
||||
//Print(CharArrayToString(result)); // see the results
|
||||
|
||||
if(res==-1)
|
||||
{
|
||||
Print("Error in WebRequest. Error code =",GetLastError());
|
||||
//--- Perhaps the URL is not listed, display a message about the necessity to add the address
|
||||
MessageBox("Add the address '"+url+"' to the list of allowed URLs on tab 'Expert Advisors'","Error",MB_ICONINFORMATION);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(res==200)
|
||||
{
|
||||
//--- Successful download
|
||||
Print("Telegran notification sent.");
|
||||
}
|
||||
}
|
||||
}
|
||||
//+------------------------------------------------------------------+
|
||||
Binary file not shown.
Reference in New Issue
Block a user