Hai provato l'editor di codice?
1 risposte
eastpeace
7 anni fa #116753
Avete provato a scrivere il vostro indicatore in Sq4 alpha4?
Ho scoperto che è molto difficile senza i documenti API.
Esiste una documentazione dell'API? O sarà pubblicata quando verrà rilasciata la beta? @ Mark Fric
E suggerisco che sq dovrebbe impostare gli indicatori di build-in in sola lettura, o avere un pulsante per "tornare all'origine". Quando apro 2 o più indicatori, alcuni non visualizzano nulla e la compilazione modifica i codici originali. (Stoch è sovrascritto da BB)
Infine, qualcuno potrebbe aiutare a far funzionare l'AMA?
Grazie in anticipo.
/** * */ /* * Copyright (c) 2016, StrategyQuant - Tutti i diritti riservati. * Il codice contenuto in questo file è stato realizzato in buona fede, in modo che sia corretto e faccia ciò che dovrebbe. * Se avete trovato un bug in questo codice OPPURE avete un suggerimento per migliorarlo OPPURE volete includere * un vostro frammento di codice nella nostra libreria standard, contattateci all'indirizzo: * http://tasks.strategyquant.com/projects/snippets/ * * Questo codice può essere utilizzato solo all'interno dei prodotti StrategyQuant. * Ogni proprietario di una licenza valida (gratuita, di prova o commerciale) di qualsiasi prodotto StrategyQuant * è autorizzato a utilizzare, copiare, modificare o fare lavori derivati da questo codice senza limitazioni, * da utilizzare in tutti i prodotti StrategyQuant e condividere le sue modifiche o i suoi lavori derivati * con la comunità StrategyQuant. * * IL SOFTWARE VIENE FORNITO "COSÌ COM'È", SENZA GARANZIE DI ALCUN TIPO, ESPRESSE O IMPLICITE, * INCLUSE, A TITOLO ESEMPLIFICATIVO, LE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UN PARTICOLARE * SCOPO E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI POTRANNO ESSERE RITENUTI RESPONSABILI PER QUALSIASI RECLAMO, DANNO * O ALTRA RESPONSABILITÀ, SIA IN UN'AZIONE CONTRATTUALE, CHE IN UN ILLECITO O ALTRO, DERIVANTI DA, * DA O IN RELAZIONE AL SOFTWARE O ALL'USO O AD ALTRI RAPPORTI CON IL SOFTWARE. * */ pacchetto SQ.Blocks.Values.Indicators; importare SQ.Internal.IndicatorBlock; importare com.strategyquant.lib.blocks.ReturnTypes; importare com.strategyquant.lib.blocks.annotations.Buffer; importare com.strategyquant.lib.blocks.annotations.BuildingBlock; importare com.strategyquant.lib.blocks.annotations.Output; importare com.strategyquant.lib.blocks.annotations.Parameter; importare com.strategyquant.lib.data.series.DataSeries; importare com.strategyquant.lib.exception.TradingException; import com.strategyquant.lib.indicator.Colors; /** * @autore eastpeace * */ @BuildingBlock(name="(AMA) Adapt Moving Average", display="AMA(#Period#, #FastP#,#SlowP#).[#Shift#]", returnType = ReturnTypes.Price) public class AMA extends IndicatorBlock { @Parametro public DataSeries Input; @Parametro(minValue=1, maxValue=10000, defaultValue="10", step=1) public int Periodo; @Parametro(minValue=1, maxValue=1000, defaultValue="2", step=1) public int FastP; @Parametro(minValue=1, maxValue=1000, defaultValue="30", step=1) pubblico int SlowP; @Output(name="AMA", color=Colors.Green) public Serie di dati KAMA; @Buffer public DataSeries ER, Smooth; //------------------------------------------------------------------------ //------------------------------------------------------------------------ //------------------------------------------------------------------------ @Override public double OnBlockEvaluate(int relativeShift) throws TradingException { return Indicators.AMA(Input, Period, FastP, SlowP).KAMA.get(relativeShift + Shift); } //------------------------------------------------------------------------ @Override protected void OnBarUpdate() throws TradingException { se (CurrentBar < Period){ KAMA.set(0, Input.get(0)); } altrimenti{ ER.set(0,Math.Sum(Functions.Abs(Input.get(0)-Input.get(1)),Period)/Functions.Abs(Input.get(0)-Input.get(Period)); Smooth.set(0,Math.Power(ER.get(0) * (2/(FastP+1) - 2/(SlowP+1)) + 2/(FastP+1),2)); KAMA.set(0,KAMA.get(1) + Smooth.get(0)*(Input.get(0) - KAMA.get(1)); } } }
tomas262
7 anni fa #142913
Salve,
la documentazione sarà disponibile dopo che la versione finale sarà pronta. Potremmo aggiungere una funzione per ripristinare il codice predefinito. Farò presente a Mark questa idea.
Stai visualizzando 1 risposte (di 1 totali)