Task created
i have try with this code,
package SQ.Blocks.Indicators.StdMedia; import SQ.Calculators.StdDevCalculator; import com.strategyquant.datalib.DataSeries; import com.strategyquant.datalib.TradingException; import com.strategyquant.tradinglib.BuildingBlock; import com.strategyquant.tradinglib.Colors; import com.strategyquant.tradinglib.Help; import com.strategyquant.tradinglib.Output; import com.strategyquant.tradinglib.Parameter; import com.strategyquant.tradinglib.ParameterSet; import com.strategyquant.tradinglib.ReturnTypes; import SQ.Calculators.AverageCalculator; import SQ.Internal.IndicatorBlock; @BuildingBlock(name="(StdMedia) StdMedia", display="SDM(#Period#)[#Shift#]", returnType = ReturnTypes.Price) @Help("StdMedia") @ParameterSet(set="Period=14") @ParameterSet(set="Period=20") @ParameterSet(set="Period=30") @ParameterSet(set="Period=40") @ParameterSet(set="Period=50") @ParameterSet(set="Period=14,ComputedFrom=0") @ParameterSet(set="Period=20,ComputedFrom=0") @ParameterSet(set="Period=30,ComputedFrom=0") @ParameterSet(set="Period=40,ComputedFrom=0") @ParameterSet(set="Period=50,ComputedFrom=0") public class StdMedia extends IndicatorBlock { @Parameter public DataSeries Input; @Parameter(defaultValue="14") public int Period; @Output(name = "StdMedia", color = Colors.Red) public DataSeries Value; private AverageCalculator averageCalculator; //------------------------------------------------------------------------ //------------------------------------------------------------------------ //------------------------------------------------------------------------ @Override protected void OnInit() throws TradingException { averageCalculator = new AverageCalculator(AverageCalculator.SMA, Period); } //------------------------------------------------------------------------ @Override protected void OnBarUpdate() throws TradingException { this.Calls++; averageCalculator.onBarUpdate(Strategy.Indicators.StdDev(Input,Period), CurrentBar); Value.set(0, averageCalculator.getValue()); } }
Drop files to upload
or
Max size: 5MB
Not allowed: exe, msi, application, reg, php, js, htaccess, htpasswd, gitignore
By logging in you confirm you agree with our Terms of service.
i have try with this code,
package SQ.Blocks.Indicators.StdMedia; import SQ.Calculators.StdDevCalculator; import com.strategyquant.datalib.DataSeries; import com.strategyquant.datalib.TradingException; import com.strategyquant.tradinglib.BuildingBlock; import com.strategyquant.tradinglib.Colors; import com.strategyquant.tradinglib.Help; import com.strategyquant.tradinglib.Output; import com.strategyquant.tradinglib.Parameter; import com.strategyquant.tradinglib.ParameterSet; import com.strategyquant.tradinglib.ReturnTypes; import SQ.Calculators.AverageCalculator; import SQ.Internal.IndicatorBlock; @BuildingBlock(name="(StdMedia) StdMedia", display="SDM(#Period#)[#Shift#]", returnType = ReturnTypes.Price) @Help("StdMedia") @ParameterSet(set="Period=14") @ParameterSet(set="Period=20") @ParameterSet(set="Period=30") @ParameterSet(set="Period=40") @ParameterSet(set="Period=50") @ParameterSet(set="Period=14,ComputedFrom=0") @ParameterSet(set="Period=20,ComputedFrom=0") @ParameterSet(set="Period=30,ComputedFrom=0") @ParameterSet(set="Period=40,ComputedFrom=0") @ParameterSet(set="Period=50,ComputedFrom=0") public class StdMedia extends IndicatorBlock { @Parameter public DataSeries Input; @Parameter(defaultValue="14") public int Period; @Output(name = "StdMedia", color = Colors.Red) public DataSeries Value; private AverageCalculator averageCalculator; //------------------------------------------------------------------------ //------------------------------------------------------------------------ //------------------------------------------------------------------------ @Override protected void OnInit() throws TradingException { averageCalculator = new AverageCalculator(AverageCalculator.SMA, Period); } //------------------------------------------------------------------------ @Override protected void OnBarUpdate() throws TradingException { this.Calls++; averageCalculator.onBarUpdate(Strategy.Indicators.StdDev(Input,Period), CurrentBar); Value.set(0, averageCalculator.getValue()); } }