Respuesta

¿Has probado el editor de código?

1 respuesta

eastpeace

Cliente, bbp_participante, comunidad, sq-último, 305 respuestas.

Visitar el perfil

hace 7 años #116753

¿Has intentado escribir tu propio indicador en Sq4 alpha4?

He descubierto que es muy difícil sin los documentos de la API.

¿Hay docs api? ¿O se publicará cuando salga la beta? @ Mark Fric

Y sugiero que sq debe establecer los indicadores build-in de sólo lectura, o tener algún botón para "volver al origen ". Cuando abro 2 o más indicadores, algunos indicadores no muestran nada , y la compilación modificaría los códigos originales. (Stoch es sobrescrito por BB)

 

Por fin, ¿alguien podría ayudar a que funcione la AMA?

Gracias de antemano.

/**
 *
 */
/*
 * Copyright (c) 2016, StrategyQuant - Todos los derechos reservados.
 *
 * Código en este archivo se hizo de buena fe que es correcto y hace lo que debe.
 * Si ha encontrado un error en este código O tiene una sugerencia de mejora O desea incluir
 * su propio fragmento de código en nuestra biblioteca estándar por favor póngase en contacto con nosotros en:
 * http://tasks.strategyquant.com/projects/snippets/
 *
 * Este código sólo puede ser utilizado dentro de los productos StrategyQuant.
 * Cada propietario de una licencia válida (gratuita, de prueba o comercial) de cualquier producto StrategyQuant
 * se le permite utilizar libremente, copiar, modificar o hacer trabajos derivados de este código sin limitaciones,
 * para ser utilizado en todos los productos StrategyQuant y compartir sus modificaciones o trabajos derivados
 * con la comunidad StrategyQuant.
 *
 * EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA,
 * INCLUYENDO PERO NO LIMITADO A LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN DETERMINADO
 * PROPÓSITO Y NO INFRACCIÓN. EN NINGÚN CASO SERÁN LOS AUTORES RESPONSABLES DE CUALQUIER RECLAMACIÓN, DAÑO
 * U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN CONTRACTUAL, EXTRACONTRACTUAL O DE OTRO TIPO, QUE SURJA DE,
 * O EN RELACIÓN CON EL SOFTWARE O EL USO U OTRAS OPERACIONES CON EL SOFTWARE.
 *
 */
paquete SQ.Bloques.Valores.Indicadores;

Importar SQ.Internal.IndicatorBlock;

import com.strategyquant.lib.blocks.ReturnTypes;
import com.strategyquant.lib.blocks.annotations.Buffer;
import com.strategyquant.lib.blocks.annotations.BuildingBlock;
import com.strategyquant.lib.blocks.annotations.Output;
import com.strategyquant.lib.blocks.annotations.Parameter;
import com.strategyquant.lib.data.series.DataSeries;
import com.strategyquant.lib.exception.TradingException;
import com.strategyquant.lib.indicator.Colors;

/**
 * @autor eastpeace
 *
 */
@BuildingBlock(name="(AMA) Media móvil adaptada", display="AMA(#Period#, #FastP#,#SlowP#).[#Shift#]", returnType = ReturnTypes.Price)

public class AMA extends IndicatorBlock {
	
	@Parámetro
	public DataSeries Entrada;

	@Parameter(minValue=1, maxValue=10000, defaultValue="10", step=1)
	public int Periodo;
	
	@Parameter(minValue=1, maxValue=1000, defaultValue="2", step=1)
	public int FastP;
	
	@Parameter(minValue=1, maxValue=1000, defaultValue="30", step=1)
	public int LentoP;
	
	@Output(name="AMA", color=Colors.Green)
	public DataSeries 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 {
	    if (CurrentBar < Period){
	        KAMA.set(0, Input.get(0));
	    }
	    else{
	        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

Administrador, sq-ultimate, 2 respuestas.

Visitar el perfil

hace 7 años #142913

Hola,

 

la documentación estará disponible cuando la versión final esté lista. Podríamos añadir una función para restaurar el código por defecto. Se lo comunicaré a Mark.

0

Viendo 1 respuesta (de un total de 1)