Antwort

Haben Sie den Code-Editor getestet?

1 Antworten

eastpeace

Kunde, bbp_participant, community, sq-ultimate, 305 Antworten.

Profil besuchen

vor 7 Jahren #116753

Haben Sie versucht, Ihren eigenen Indikator in Sq4 alpha4 zu schreiben?

Ich habe festgestellt, dass es ohne API-Dokumente sehr schwierig ist.

Gibt es Api-Dokumente? Oder würde es veröffentlicht werden, wenn die Beta veröffentlicht wird? @ Mark Fric

UND ich schlage vor, dass SQ die eingebauten Indikatoren schreibgeschützt einstellen sollte, oder eine Schaltfläche "Zurück zum Ursprung" haben sollte. Wenn ich 2 oder mehr Indikatoren öffne, zeigen einige Indikatoren nichts an, und das Kompilieren würde die ursprünglichen Codes verändern. (Stoch wird von BB überschrieben)

 

Würde endlich jemand helfen, die AMA zum Laufen zu bringen?

Ich danke Ihnen im Voraus.

/**
 *
 */
/*
 * Copyright (c) 2016, StrategyQuant - Alle Rechte vorbehalten.
 *
 * Der Code in dieser Datei wurde in dem guten Glauben erstellt, dass er korrekt ist und das tut, was er soll.
 * Wenn Sie einen Fehler in diesem Code gefunden haben ODER Sie haben einen Verbesserungsvorschlag ODER Sie wollen
 * Ihren eigenen Codeschnipsel in unsere Standardbibliothek aufnehmen möchten, kontaktieren Sie uns bitte unter:
 * http://tasks.strategyquant.com/projects/snippets/
 *
 * Dieser Code kann nur innerhalb von StrategyQuant-Produkten verwendet werden.
 * Jeder Besitzer einer gültigen (kostenlosen, Test- oder kommerziellen) Lizenz eines StrategyQuant-Produkts
 * darf diesen Code ohne Einschränkungen frei verwenden, kopieren, modifizieren oder davon abgeleitete Arbeiten erstellen,
 * in allen StrategyQuant-Produkten zu verwenden und seine Modifikationen oder abgeleiteten Arbeiten
 * mit der StrategyQuant-Gemeinschaft zu teilen.
 *
 * DIE SOFTWARE WIRD "SO WIE SIE IST" ZUR VERFÜGUNG GESTELLT, OHNE JEGLICHE GARANTIE, WEDER AUSDRÜCKLICH NOCH STILLSCHWEIGEND,
 * EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GARANTIEN DER MARKTGÄNGIGKEIT, EIGNUNG FÜR EINEN BESTIMMTEN
 * ZWECK UND NICHTVERLETZUNG VON RECHTEN. IN KEINEM FALL SIND DIE AUTOREN HAFTBAR FÜR JEGLICHE ANSPRÜCHE, SCHÄDEN
 * ODER ANDERE HAFTUNG, OB IN EINER KLAGE AUS VERTRAG, UNERLAUBTER HANDLUNG ODER ANDERWEITIG, DIE AUS,
 * AUS ODER IN VERBINDUNG MIT DER SOFTWARE ODER DER NUTZUNG ODER DEM SONSTIGEN UMGANG MIT DER SOFTWARE.
 *
 */
Paket SQ.Blocks.Values.Indicators;

import SQ.Internal.IndicatorBlock;

import com.strategyquant.lib.blocks.ReturnTypes;
import com.strategyquant.lib.blocks.annotations.Buffer; import com.strategyquant.lib.blocks.annotations.Buffer;
import com.strategyquant.lib.blocks.annotations.BuildingBlock; import com.strategyquant.lib.blocks.annotations;
import com.strategyquant.lib.blocks.annotations.Output; import com.strategyquant.lib.blocks.annotations.Output;
import com.strategyquant.lib.blocks.annotations.Parameter; 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;

/**
 * @author eastpeace
 *
 */
@BuildingBlock(name="(AMA) Adapt Moving Average", display="AMA(#Period#, #FastP#,#SlowP#).[#Shift#]", returnType = ReturnTypes.Price)

public class AMA extends IndicatorBlock {
	
	@Parameter
	public DataSeries Input;

	@Parameter(minValue=1, maxValue=10000, defaultValue="10", step=1)
	public int Zeitraum;
	
	@Parameter(minValue=1, maxValue=1000, defaultValue="2", step=1)
	public int FastP;
	
	@Parameter(minValue=1, maxValue=1000, defaultValue="30", step=1)
	public int SlowP;
	
	@Output(name="AMA", color=Colors.Green)
	public DataSeries KAMA;
	
	@Puffer
	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

Administrator, sq-ultimate, 2 Antworten.

Profil besuchen

vor 7 Jahren #142913

Hallo,

 

Die Dokumentation wird verfügbar sein, sobald die endgültige Version fertig ist. Wir könnten eine Funktion zur Wiederherstellung des Standardcodes hinzufügen. Ich werde Mark von dieser Idee in Kenntnis setzen.

0

Ansicht von 1 Antwort (von insgesamt 1)