diff --git a/Experts/Nkanven/MuzzlingAlligatorWatcher.mq5 b/Experts/Nkanven/MuzzlingAlligatorWatcher.mq5 new file mode 100644 index 0000000..afc6986 --- /dev/null +++ b/Experts/Nkanven/MuzzlingAlligatorWatcher.mq5 @@ -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 +#include + +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."); + } + } + } +//+------------------------------------------------------------------+ diff --git a/Experts/Nkanven/StarRiskCalculatorTrader.ex5 b/Experts/Nkanven/StarRiskCalculatorTrader-V2.ex5 similarity index 100% rename from Experts/Nkanven/StarRiskCalculatorTrader.ex5 rename to Experts/Nkanven/StarRiskCalculatorTrader-V2.ex5 diff --git a/LotCalTrader.ex4 b/LotCalTrader.ex4 deleted file mode 100644 index f5f2f1c..0000000 Binary files a/LotCalTrader.ex4 and /dev/null differ