Description
A trading strategy that incorporates price, moving average, and short-term and long-term momentum
Entry Rules:
- Price crossover above the 50-day MA, indicating a potential upward trend.
- Moving average crossover: Confirm the trend by waiting for the 50-day MA to cross above the 200-day MA.
- Short-term momentum: The RSI should be above 50, indicating positive short-term momentum.
- Long-term momentum: The MACD line should cross above the MACD signal line, indicating positive long-term momentum.
When all four conditions are met, open a long (buy) position.
B. Exit Rules:
- Price crossover: Close the position when the price crosses below the 50-day MA, indicating a potential downward trend.
- Fixed Pips
I did not backtest the robot, please do your own research, if you have any questions, pls do not hesitate to ask: singalgolab@gmail.com
using System;
using cAlgo.API;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;
using cAlgo.Indicators;
namespace cAlgo.Robots
{
[Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
public class MovingAverageMomentumStrategy : Robot
{
[Parameter("Stop Loss (pips)", DefaultValue = 20, MinValue = 1)]
public int StopLossPips { get; set; }
[Parameter("short MA Period", DefaultValue = 50, MinValue = 1)]
public int masPeriod { get; set; }
[Parameter("long MA Period", DefaultValue = 200, MinValue = 1)]
public int malPeriod { get; set; }
[Parameter("RSI Period", DefaultValue = 14, MinValue = 1)]
public int rsiPeriod { get; set; }
[Parameter("Take Profit (pips)", DefaultValue = 40, MinValue = 1)]
public int TakeProfitPips { get; set; }
[Parameter("Volume", DefaultValue = 10000)]
public int volume { get; set; }
private MovingAverage ma50;
private MovingAverage ma200;
private RelativeStrengthIndex rsi;
private MacdCrossOver macd;
protected override void OnStart()
{
ma50 = Indicators.MovingAverage(Bars.ClosePrices, masPeriod, MovingAverageType.Exponential);
ma200 = Indicators.MovingAverage(Bars.ClosePrices, malPeriod, MovingAverageType.Exponential);
rsi = Indicators.RelativeStrengthIndex(Bars.ClosePrices, rsiPeriod);
macd = Indicators.MacdCrossOver(Bars.ClosePrices, 12, 26, 9);
}
protected override void OnBar()
{
bool isPriceAboveMa50 = Bars.ClosePrices.Last(1) > ma50.Result.Last(1);
bool isMa50AboveMa200 = ma50.Result.Last(1) > ma200.Result.Last(1);
bool isRsiAbove50 = rsi.Result.Last(1) > 50;
bool isMacdAboveSignal = macd.MACD.Last(1) > macd.Signal.Last(1);
bool isPriceBelowMa50 = Bars.ClosePrices.Last(1) < ma50.Result.Last(1); ;
bool isMa50BelowMa200 = ma50.Result.Last(1) < ma200.Result.Last(1);
bool isRsiBelow50 = rsi.Result.Last(1) < 50;
bool isMacdBelowSignal = macd.MACD.Last(1) < macd.Signal.Last(1);
if (Positions.Count != 0)
{
foreach (var position in Positions)
{
if (position.TradeType == TradeType.Sell && isPriceAboveMa50)
{
position.Close();
}
else if (position.TradeType == TradeType.Buy && isPriceBelowMa50)
{
position.Close();
}
}
}
if (isPriceAboveMa50 && isMa50AboveMa200 && isRsiAbove50 && isMacdAboveSignal && Positions.Count ==0)
{
ExecuteMarketOrder(TradeType.Buy, SymbolName, volume, "MovingAverageMomentum", StopLossPips, TakeProfitPips);
}
else if (isPriceBelowMa50 && isMa50BelowMa200 && isRsiBelow50 && isMacdBelowSignal && Positions.Count == 0)
{
ExecuteMarketOrder(TradeType.Sell, SymbolName, volume, "MovingAverageMomentum", StopLossPips, TakeProfitPips);
}
}
}
}
singalgolab
Joined on 07.05.2023
- Distribution: Free
- Language: C#
- Trading platform: cTrader Automate
- File name: simple Momentum, singularity algolab.algo
- Rating: 0
- Installs: 827
- Modified: 07/05/2023 19:45
Comments
Write more, thats all I have to say. Literally, it seems as though you relied on the video to make your point. You definitely know what youre talking about, why waste your intelligence on just posting videos to your site when you could be giving us something informative to read? Miss feather hair extensionsselling payment processing
Great site you have listed here, offers useful material which may assist any one Also in the event everyone will be intresting in escort ladies, you should contact us.Packers and Movers Hyderabad to Kolkata
This web page is mostly a stroll-via for the entire info you needed about this and didn’t know who to ask. Glimpse here, and also you’ll definitely uncover it. [Reply]how to be a credit card processor