如何在Amibroker的回测中获得交易的利润百分比

时间:2020-02-27 12:56:10

标签: algorithmic-trading trading back-testing amibroker

我正在使用Amibroker v6.3

我想找出回测期间进行的交易的利润百分比,然后相应地调整卖出标准。当利润低于10%时,我想使用此函数sell_below10()。当利润> 10%时,请使用功能sell_abv10()。

如何在回测期间检测到交易的利润百分比,以便我可以相应地使用正确的卖出功能?

谢谢。

1 个答案:

答案 0 :(得分:3)

已更新

这是在计算从开仓之日起的pct变化,并相应地将Sell变量设置为每个函数的结果。

Buy = ExRem(YourBuySignal, YourSellSignal); 
Sell = ExRem(YourSellSignal, YourBuySignal);

ApplyStop(stopTypeLoss, stopModePercent, 10);
ApplyStop(stopTypeProfit, stopModePercent, 10);

最简单的方法是使用止损和获利止损,这样您就不必自己计算百分比。像平常一样设置买卖信号,并添加止损。

from pyspark.sql.functions import col, max, struct

df = spark.read.option("header","true").csv("test.csv")
keys = [row.key for row in df.select(col("key")).distinct().collect()]

df2 = df.groupBy("id").pivot("key").agg(max("value"))
df2.show()
df2.printSchema()

for key in keys:
    df2 = df2.withColumn(key, col(key).cast(key.split('_')[0]))
df2.show()
df2.printSchema()

df3 = df2.select("id", struct("int_key", "double_key", "string_key").alias("attributes"))
jsonArray = df3.toJSON().collect()

for json in jsonArray: print(json)