PS:2025俱乐部12月直播预售,革新内容,抽奖环节不要错过。
点击进入:用Ai编写策略

//------------------------------------------------------------------------
// 简称: TrendStrengthStrategy
// 名称: 趋势强度策略-松鼠QuantAI生成
// 来源: https://ai.kanpan789.com/
// 类别: 公式应用
// 类型: 内建应用
// 输出:
//------------------------------------------------------------------------
//----------------------------------------------------------------------//
// 策略说明:
// 本策略基于市场强弱指标和动量的通道突破系统
// 系统要素:
// 1. 根据N根K线的收盘价相对前一根K线的涨跌计算出市场强弱指标
// 2. 最近9根K线的动量变化趋势
// 3. 最近N根K线的高低点形成的通道
// 入场条件:
// 1. 市场强弱指标为多头,且市场动量由空转多时,突破通道高点做多
// 2. 市场强弱指标为空头,且市场动量由多转空时,突破通道低点做空
// 出场条件:
// 1. 开多以开仓BAR的最近N根BAR的低点作为止损价
// 开空以开仓BAR的最近N根BAR的高点作为止损价
// 2. 盈利超过止损额的一定倍数止盈
// 3. 出现反向信号止损
//----------------------------------------------------------------------//
Params
Numeric Length(5);
Numeric Stop_Len(5);
Numeric ProfitFactor(3);
Numeric EntryStrength(95);
Vars
Series<Numeric> CloseChange;
Numeric i;
Numeric UpCloses;
Numeric DnCloses;
Numeric SumChange;
Series<Numeric> MarketStrength;
Series<Numeric> Momentum1;
Series<Numeric> Momentum2;
Series<Numeric> HH;
Series<Numeric> LL1;
Series<Numeric> LL2;
Series<Numeric> StopLoss1;
Series<Numeric> ProfitTarget;
Events
OnBar(ArrayRef<Integer> indexs)
{
CloseChange = Close - Close[1];
UpCloses = 0;
DnCloses = 0;
For i = 0 To Length-1
{
If(CloseChange[i] > 0)
UpCloses = UpCloses + CloseChange[i];
Else
DnCloses = DnCloses + CloseChange[i];
}
SumChange = Summation(CloseChange, Length);
If(SumChange >= 0)
{
MarketStrength = SumChange / UpCloses * 100;
}
Else
{
MarketStrength = SumChange / Abs(DnCloses) * 100;
}
Momentum1 = Close - Close[4];
Momentum2 = Close[4] - Close[8];
HH = Highest(High, Length);
LL1 = Lowest(Low, Length);
LL2 = Lowest(Low, Stop_Len);
If(MarketPosition == 0 And MarketStrength[1] >= EntryStrength And Momentum1[1] >= 0 And Momentum2[1] < 0 And High >= HH[1] )
{
Buy(0, Max(Open, HH[1]));
StopLoss1 = LL2;
ProfitTarget = EntryPrice + (EntryPrice - StopLoss1) * ProfitFactor;
Commentary("ProfitTarget=" + Text(ProfitTarget));
}
If(MarketPosition == 1 And BarsSinceEntry > 0 )
{
If(High >= ProfitTarget)
{
Sell(0, Max(Open, ProfitTarget));
Commentary("止盈");
}
Else If(Low <= StopLoss1)
{
Sell(0, Min(Open, StopLoss1));
Commentary("止损");
}
Else If(MarketStrength[1] <= -1 * EntryStrength And Momentum1[1] < 0 And Momentum2[1] >
= 0 And Low
<= LL1[1])
{
Sell(0, Min(Open, LL1[1]));
Commentary("反向出场");
}
}
}
//------------------------------------------------------------------------
// 编译版本 GS2014.10.25
// 版权所有 TradeBlazer Software 2003-2025
// 更改声明 TradeBlazer Software保留对TradeBlazer平台每一版本的TradeBlazer公式修改和重写的权利
//------------------------------------------------------------------------