龙听期货论坛's Archiver

龙听 发表于 2024-2-5 15:47

【_SystemHistory function】

{
_SystemHistory 函数

作者:Alex Matulich 2003 年 11 月 8 日修订 独角兽研究公司版权所有 (c) 2003 年,保留所有权利。

在优化过程中,请将文件名参数设置为空字符串""。否则,每次重新计算策略时,该函数都会重新创建一个文件,这将大大降低优化速度。

该函数会输出每个平仓头寸的利润、初始风险、初始波动率、最大不利偏移 (MAE) 和最大有利偏移 (MFE)。输出单位是美元,而不是市场单位,尽管输入*是市场单位。

该函数的输入是文件名、止损价和波动率测量值,您可以在每条线上将其传递给该函数。

下面是一个如何使用 _SystemHistory 的示例,使用的是一个粗糙的 "海龟式 "交易系统:
-----------------------------------------------------------------------[code]
Inputs: filename(""), EntryLen(24), StopLength(12);
Vars: StopPrice(0), signl(0);

{Generate buy or sell signal}

signl = 0;
if Close > Highest(High, EntryLen)[1] then signl = 1; {buy signal}
if Close < Lowest(Low, EntryLen)[1] then signl = -1;  {sell signal}

{Execute buy or sell signal and set initial stop}

if signl > 0 then begin
     Buy("L") next bar open;
     if MarketPosition <= 0 then StopPrice = Highest(Low, StopLength);
     ExitLong("xl1") next bar at StopPrice stop;
end;

if signl < 0 then begin
     Sell("S") next bar open;
     if MarketPosition >= 0 then StopPrice = Lowest(High, StopLength);
     ExitShort("xs1") next bar at StopPrice stop;
end;

{Update stop for open position}

if MarketPosition > 0 then begin
     StopPrice = MinList(StopPrice, Highest(Low, StopLength));
     ExitLong("xl") next bar at StopPrice stop;
end;

if MarketPosition < 0 then begin
     StopPrice = MaxList(StopPrice, Lowest(High, StopLength));
     ExitShort("xs") next bar at StopPrice stop;
end;

{Output the history}
value1 = _SystemHistory(filename, StopPrice, AvgTrueRange(15));
[/code]-----------------------------------------------------------------------
}

**** Hidden Message *****

龙听 发表于 2024-2-5 15:50

**** Hidden Message *****

页: [1]