在学习编制函数,请老师帮看下这个函数是否正确。谢谢
//------------------------------------------------------------------------
// 简称: T_LastOffsetProfit
// 名称: 判断上一笔交易是否盈利
// 类别: 用户函数
// 类型: 用户函数
// 输出: 布尔型
//------------------------------------------------------------------------
Params
Numeric ProfitThrus(3); // 盈利阈值
Vars //此处添加变量
Series<Numeric> LongPrice;
Series<Numeric> ShortPrice;
Series<Numeric> A;
Begin //此处添加代码正文
If (BarsSinceExit == 0)
{
// 记录多头或空头的入场价格
If (MarketPosition == 1)
{
LongPrice = LongAvgEntryPrice;
A = 1;
}
Else If (MarketPosition == -1)
{
ShortPrice = ShortAvgEntryPrice;
A = -1;
}
Return False; // 刚平仓时默认返回 False
}
Else // BarsSinceExit >= 1
{
// 判断上一笔交易是否盈利
If (A == 1 And ExitPrice - LongPrice >= ProfitThrus)
{
Return True; // 多单盈利
}
Else If (A == -1 And ShortPrice - ExitPrice >= ProfitThrus)
{
Return True; // 空单盈利
}
Else
{
Return False; // 未达到盈利阈值
}
}
End
我说实话没太看懂你的逻辑
如果当前bar出现了平仓bar,再去记录持仓价格?已经平仓了哪里还有持仓了?持仓价格哪里来?
想要判断上一笔交易是否盈利,难道不是应该在开仓的时候记录开仓价格,然后在平仓的时候根据买入卖出和平仓价格来做减法判断是否大于0吗?
平仓以后再记录持仓价格是个什么操作我实在没太理解,麻烦把代码详细注释一下谢谢