找大神量化代写
😀😀
是的
应该看置顶的代写服务帖吧
是的
Params
// 日线参数
Numeric D1_MA1(21); // 日线MA21周期
Numeric D1_MA2(60); // 日线MA60周期
Numeric D1_MA5(5); // 日线短周期MA
Numeric BiasLimit(2); // 乖离率限制%
// 分钟线参数
Numeric M15_MA(60); // 15分钟MA周期
Numeric M3_K(15); // 3分钟K线数量
Numeric M15_K(15); // 15分钟K线数量
// 风险管理
Numeric StopLossPct(2); // 止损百分比
Numeric TakeProfit(3); // 止盈倍数
Numeric Lots(1); // 交易手数
Vars
// 日线级别变量
// 日线级别序列变量(带初始化)
NumericSeries D1_MA21(0); // 初始值设为0
NumericSeries D1_MA60(0);
NumericSeries D1_MA5(0);
// 分钟线序列变量(带周期说明)
NumericSeries M15_MA60(0) Data2; // 指定为第二个数据序列(15分钟)
//------------------------------------------------------------------------
// 优化后的计算逻辑(解决序列变量初始化问题)
//------------------------------------------------------------------------
Begin
// 日线MA计算(前向填充处理)
If (BarStatus == 2) { // 只在最新K线计算
D1_MA21 = AverageFC(Close,D1_MA1);
D1_MA60 = AverageFC(Close,D1_MA2);
D1_MA5 = AverageFC(Close,D1_MA5);
} Else {
D1_MA21 = D1_MA21[1]; // 历史K线保持原值
D1_MA60 = D1_MA60[1];
D1_MA5 = D1_MA5[1];
}
// 跨周期数据获取(增加容错判断)
If (Data2.BarStatus == 2) { // 确保15分钟数据有效
M15_MA60 = iMA("", 15, M15_MA, 0, MODE_SMA, PRICE_CLOSE);
}
// 风险管理
Numeric EntryPrice;
Bool TradeSignal(False);
Begin
// 跨周期数据获取(修正调用方式)
D1_MA21 = AverageFC(Close,D1_MA1);
D1_MA60 = AverageFC(Close,D1_MA2);
D1_MA5 = AverageFC(Close,D1_MA5);
M15_MA60 = CallStock("", vtClose, 15, M15_MA); // 15分钟周期
// 计算乖离率
BiasRate = (Close - D1_MA21)/D1_MA21 * 100;
// 计算Pivot Point(修正计算公式)
PivotPoint = (High[1] + Low[1] + Close[1]) / 3;
// 计算分钟线均价(修正调用方式)
M15_Avg = AverageFC(Close,M15_K);
M3_Avg = CallStock("", vtClose, 3, M3_K);
//====== 条件判断 ======
// 日线条件(修正逻辑判断)
Condition1 = (Close > D1_MA21 || Close > D1_MA60)
&& (D1_MA21 >= D1_MA21[1] || D1_MA60 >= D1_MA60[1])
&& Abs(BiasRate) < BiasLimit
&& Close > D1_MA5;
// 15分钟条件(增加容错处理)
Condition2 = Close > M15_MA60
&& Open > PivotPoint
&& D1_MA21 > D1_MA60;
//====== 交易信号 ======
If Condition1 && Condition2
&& (Close > M15_Avg || Close > M3_Avg)
&& MarketPosition != 1
Then
{
TradeSignal = True;
EntryPrice = Close;
Buy(Lots, EntryPrice);
}
//====== 风险管理 ======
If MarketPosition == 1 Then
{
// 动态止损止盈(优化计算方式)
Numeric DynamicSL = EntryPrice * (1 - StopLossPct/100);
Numeric DynamicTP = EntryPrice * (1 + TakeProfit*(StopLossPct/100));
// 趋势跟踪退出(增加过滤条件)
If Close < AverageFC(Close,10) && BarsSinceEntry > 5 Then
Sell;
If Close <= DynamicSL Or Close >= DynamicTP Then
Sell;
}
End
//------------------------------------------------------------------------
// 修正后的跨周期调用函数
//------------------------------------------------------------------------
Function CallStock(StockName, ValueType, Interval, Length)
{
// 参数说明:
// Interval: 1-分钟 3-3分钟 5-5分钟 15-15分钟
Return iMA("", Interval, Length, 0, MODE_SMA, PRICE_CLOSE);
}
// 前向复权平均函数
Function Numeric AverageFC(NumericSeries Price, Numeric Length)
{
Return Average(Price, Length);
}
DP写的没通过
看置顶代写帖,按里面要求去发帖,不是发这里