Description
Buenas tardes amig@s:
Hoy les propongo a ustedes un estudio de la reversión del cincuenta por ciento de la tendencia.
En mi opinión, es un nivel a considerar aunque hay otros niveles naturalmente, como el cien por cien. Pero a veces queda cerca y a veces queda lejos, muy lejos.
Nos vemos en el cielo.
Adios,
using System;
using cAlgo.API;
using cAlgo.API.Internals;
using cAlgo.API.Indicators;
using cAlgo.Indicators;
namespace cAlgo
{
[Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
public class FiftyFiftyOverlay : Indicator
{
[Output("Result1", LineColor = "Red")]
public IndicatorDataSeries Result1 { get; set; }
[Output("Result2", LineColor = "Green")]
public IndicatorDataSeries Result2 { get; set; }
[Output("Result3", LineColor = "lightGreen")]
public IndicatorDataSeries Result3 { get; set; }
[Output("Result4", LineColor = "Red")]
public IndicatorDataSeries Result4 { get; set; }
[Output("Result5", LineColor = "Green")]
public IndicatorDataSeries Result5 { get; set; }
[Output("Result6", LineColor = "Tomato")]
public IndicatorDataSeries Result6 { get; set; }
[Output("Result7", LineColor = "Aqua")]
public IndicatorDataSeries Result7 { get; set; }
private Bars tf;
private int idx;
private int previousIdx;
private int buyPeriod;
private int sellPeriod;
private double buyAverage, sellAverage;
private int savedbp, savedsp;
private double maxbp, minbp, maxsp, minsp;
protected override void Initialize()
{
tf = MarketData.GetBars(Bars.TimeFrame);
}
public override void Calculate(int index)
{
idx = tf.OpenTimes.GetIndexByTime(Bars.OpenTimes[index]);
if (idx > previousIdx)
{
buyPeriod++;
savedbp = buyPeriod;
sellPeriod++;
savedsp = sellPeriod;
}
if (buyPeriod == 0)
buyPeriod = savedbp;
if (sellPeriod == 0)
sellPeriod = savedsp;
buyAverage = (Bars.OpenPrices.Maximum(buyPeriod + 1) + Bars.ClosePrices.Minimum(buyPeriod + 1)) / 2;
sellAverage = (Bars.ClosePrices.Maximum(sellPeriod + 1) + Bars.OpenPrices.Minimum(sellPeriod + 1)) / 2;
if (Bars.ClosePrices[index] > buyAverage)
{
buyAverage = Bars.ClosePrices[index];
buyPeriod = 0;
}
if (Bars.ClosePrices[index] < sellAverage)
{
sellAverage = Bars.ClosePrices[index];
sellPeriod = 0;
}
//--------------------------------------------------------------------------------------------------------------------------------------------------------
if (buyPeriod > 0)
{
maxbp = Bars.OpenPrices.Maximum(buyPeriod + 1);
minbp = Bars.ClosePrices.Minimum(buyPeriod + 1);
}
if (buyPeriod == 0)
{
maxbp = Bars.ClosePrices[index];
minbp = Bars.OpenPrices[index];
}
//--------------------------------------------------------------------------------------------------------------------------------------------------------
if (sellPeriod > 0)
{
maxsp = Bars.ClosePrices.Maximum(sellPeriod + 1);
minsp = Bars.OpenPrices.Minimum(sellPeriod + 1);
}
if (sellPeriod == 0)
{
maxsp = Bars.OpenPrices[index];
minsp = Bars.ClosePrices[index];
}
//--------------------------------------------------------------------------------------------------------------------------------------------------------
//Result1[index] = maxsp;
//Result2[index] = minsp;
Result3[index] = sellAverage;
//Result4[index] = maxbp;
//Result5[index] = minbp;
Result6[index] = buyAverage;
Result7[index] = (buyAverage + sellAverage) / 2;
previousIdx = idx;
}
}
}
srm_bcn
Joined on 01.09.2019
- Distribution: Free
- Language: C#
- Trading platform: cTrader Automate
- File name: FiftyFiftyOverlay.algo
- Rating: 0
- Installs: 1169
Note that publishing copyrighted material is strictly prohibited. If you believe there is copyrighted material in this section, please use the Copyright Infringement Notification form to submit a claim.
Comments
Log in to add a comment.
No comments found.