没有特殊编写时,使用A_SendOrder每笔行情都进行一次判断
不受主图信号的影响,您可以将完整的源码发送上来我们针对您的编写做修改
Params
//局部变量
Vars
Begin
if(Q_Last > REF(High, 1) And A_BuyPosition == 0)
{
A_SendOrder(Enum_Buy,Enum_Entry,1,Price("RiseLimit"));
}
if(Q_Last > REF(High,1) And A_BuyPosition > 0 And Q_Last > A_BuyAvgPrice * 1.0015)
{
A_SendOrder(Enum_Buy,Enum_Entry,1,Price("RiseLimit"));
}
if(Q_Last < REF(Low,1) And A_SellPosition == 0)
{
A_SendOrder(Enum_Sell,Enum_Entry,1,Price("FallLimit"));
}
if (Q_Last < REF(Low,1) And Q_Last < A_SellAvgPrice * 0.9985 And A_SellPosition > 0)
{
A_SendOrder(Enum_Sell,Enum_Entry,1,Price("FallLimit"));
}
//平仓操作
if( A_TotalPosition > 0 And A_PositionProfitLoss >= A_TotalPosition * 30)
{
A_SendOrder(Enum_Sell,Enum_Exit,A_BuyPosition,Price("FallLimit"));
A_SendOrder(Enum_Sell,Enum_ExitToday,A_BuyPosition,Price("FallLimit"));
A_SendOrder(Enum_Buy,Enum_ExitToday,A_SellPosition,Price("RiseLimit"));
A_SendOrder(Enum_Buy,Enum_Exit,A_SellPosition,Price("RiseLimit"));
}
End
需要一根K线开一次仓,1楼思路可以改写为K线图公式来实现
此外,清仓部分使用持仓盈亏与总持仓数量*30作比较,有逻辑上的错误需要您考虑一下
其他修改参考:
//参数
Params
//局部变量
Vars
Begin
if(Close > REF(High, 1) And MarketPosition == 0)
{
Buy(1,Limit_Order);
}
if(Close > REF(High,1) And MarketPosition == 1 And Close > BKPriceAv* 1.0015)
{
Buy(1,Limit_Order);
}
if(Close < REF(Low,1) And MarketPosition == 0)
{
SellShort(1,Limit_Order);
}
if (Close< REF(Low,1) And Close <SKPriceAv * 0.9985 And MarketPosition == -1)
{
SellShort(1,Limit_Order);
}
//平仓操作
/*
if( MarketPosition <> 0 And A_PositionProfitLoss >= A_TotalPosition * 30)
{
}
*/
End
K线图公式无法实现锁仓思路,如果需要锁仓在6楼源码的基础上
需要限制加仓的次数,来避免多次重复开仓:
//参数
Params
//局部变量
Vars
Begin
if(Q_Last > REF(High, 1) And A_BuyPosition == 0)
{
A_SendOrder(Enum_Buy,Enum_Entry,1,Price("RiseLimit"));
}
if(Q_Last > REF(High,1) And A_BuyPosition <= 3 And Q_Last > A_BuyAvgPrice * 1.0015)
{
A_SendOrder(Enum_Buy,Enum_Entry,1,Price("RiseLimit"));
}
if(Q_Last < REF(Low,1) And A_SellPosition == 0)
{
A_SendOrder(Enum_Sell,Enum_Entry,1,Price("FallLimit"));
}
if (Q_Last < REF(Low,1) And Q_Last < A_SellAvgPrice * 0.9985 And A_SellPosition <= 3)
{
A_SendOrder(Enum_Sell,Enum_Entry,1,Price("FallLimit"));
}
//平仓操作
if( A_TotalPosition > 0 And A_PositionProfitLoss >= A_TotalPosition * 30)
{
A_SendOrder(Enum_Sell,Enum_Exit,A_BuyPosition,Price("FallLimit"));
A_SendOrder(Enum_Sell,Enum_ExitToday,A_BuyPosition,Price("FallLimit"));
A_SendOrder(Enum_Buy,Enum_ExitToday,A_SellPosition,Price("RiseLimit"));
A_SendOrder(Enum_Buy,Enum_Exit,A_SellPosition,Price("RiseLimit"));
}
End
