Risposta

Hai provato l'editor di codice?

1 risposte

eastpeace

Cliente, bbp_partecipante, comunità, sq-ultimate, 305 risposte.

Visita il profilo

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));
	    }
	}

}

0

tomas262

Amministratore, sq-ultimate, 2 risposte.

Visita il profilo

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.

0

Stai visualizzando 1 risposte (di 1 totali)