投资者咨询:盈利大于500回到0平仓 (文华财经WH8赢智V8.2)
来源:文华财经 日期:2018-6-7 14:57
以下是实现ABC模组,亏损1000止损,盈利大于500回到盈利0平仓!
现在测试是:亏损1000可以实现,但是盈利500回到0并未平仓,请老师找出问题?
VAR Modname[3]; // 模组名称
//合约名数组
VAR Model[3];
//循环变量
VAR Count;
GLOBAL_VAR YINBIDSTATE[3], YINASKSTATE[3]; // 计算止盈变量
GLOBAL_VAR LASTBIDVOL[3], LASTASKVOL[3]; // 记录上一次持仓量
GLOBAL_VAR YINBIDTHSTATE[3], YINASKTHSTATE[3]; // 到达浮盈1000后止损
//临时的合约名变量
VAR TempModeName;
VAR BuyVol,SellVol,BuyTodayVol,SellTodayVol;
VAR BuyOrderID,SellOrderID;
VAR CodeCount; //
VOID MAIN()
{
CodeCount = 3;
Modname[0] = "A";
Modname[1] = "B";
Modname[2] = "C";
Model[0] = Modname[0].F_DealCode();
Model[1] = Modname[1].F_DealCode();
Model[2] = Modname[2].F_DealCode();
FOR(Count = 0;Count < CodeCount; Count = Count + 1)
{
TempModeName = Model[Count];
IF(LASTBIDVOL[Count] != T_BuyPosition(TempModeName))
{
LASTBIDVOL[Count] = T_BuyPosition(TempModeName);
YINBIDSTATE[Count] = 0;
YINBIDTHSTATE[Count] = 0;
}
IF(LASTASKVOL[Count] != T_SellPosition(TempModeName))
{
LASTASKVOL[Count] = T_SellPosition(TempModeName);
YINASKSTATE[Count] = 0;
YINASKTHSTATE[Count] = 0;
}
CodePing(TempModeName, Count);
//MessageOut("Count + " + Count + "TempModeName + " + TempModeName);
}
}
VOID CodePing(VAR CodeName, VAR Count)
{
//判断是否为上海合约,上海合约先判断今仓,再做老仓处理
IF(T_IsSHCode(CodeName))
{
BuyVol = T_SHBuyPosition(CodeName,0);
SellVol = T_SHSellPosition(CodeName,0);
IF(T_BuyProfitLoss(CodeName) <= -1000)
{
IF(BuyVol > 0)
{
BuyOrderID = T_Deal1(CodeName,1,2,BuyVol,LIMIT_ORDER);
}
BuyVol = T_SHBuyPosition(CodeName,1);
IF(BuyVol > 0)
{
BuyOrderID = T_Deal1(CodeName,1,1,BuyVol,LIMIT_ORDER);
}
}
IF(T_SellProfitLoss(CodeName) <= -1000)
{
IF(SellVol > 0)
{
SellOrderID = T_Deal1(CodeName,0,2,SellVol,LIMIT_ORDER);
}
SellVol = T_SHSellPosition(CodeName,1);
IF(SellVol > 0)
{
SellOrderID = T_Deal1(CodeName,0,1,SellVol,LIMIT_ORDER);
}
}
}
ELSE
{
BuyVol = T_BuyPosition(CodeName);
SellVol = T_SellPosition(CodeName);
IF(BuyVol != 0)
{
IF(T_BuyProfitLoss(CodeName) <= -1000)
{
BuyOrderID = T_Deal1(CodeName,1,1,BuyVol,LIMIT_ORDER);
}
}
IF(SellVol != 0)
{
IF(T_SellProfitLoss(CodeName) <= -1000)
{
SellOrderID = T_Deal1(CodeName,0,1,SellVol,LIMIT_ORDER);
}
}
}
}
VAR tempState;
VOID CodePing2(VAR CodeName, VAR Count)
{
//
IF(T_BuyProfitLoss(CodeName) > 500 && YINBIDSTATE[Count] == 0)
{
YINBIDTHSTATE[Count] = 1;
}
IF(T_SellProfitLoss(CodeName) > 500 && YINASKSTATE[Count] == 0)
{
YINASKTHSTATE[Count] = 1;
}
// 多头止盈全平
IF(YINBIDSTATE[Count] > 0 || YINBIDTHSTATE[Count] == 1)
{
IF(T_BuyProfitLoss(CodeName) <= 0)
{
YINBIDTHSTATE[Count] = 0;
IF(T_IsSHCode(CodeName))
{
BuyVol = T_SHBuyPosition(CodeName,0);
IF(BuyVol > 0)
{
BuyOrderID = T_Deal1(CodeName,1,2,BuyVol,LIMIT_ORDER);
}
BuyVol = T_SHBuyPosition(CodeName,1);
IF(BuyVol > 0)
{
BuyOrderID = T_Deal1(CodeName,1,1,BuyVol,LIMIT_ORDER);
}
}
ELSE
{
BuyVol = T_BuyPosition(CodeName);
IF(BuyVol > 0)
{
BuyOrderID = T_Deal1(CodeName,1,1,BuyVol,LIMIT_ORDER);
}
}
}
}
// 空头止盈全平
IF(YINASKSTATE[Count] > 0 || YINASKTHSTATE[Count] == 1)
{
IF(T_SellProfitLoss(CodeName) <= 0)
{
YINASKTHSTATE[Count] = 0;
IF(T_IsSHCode(CodeName))
{
SellVol = T_SHSellPosition(CodeName,0);
IF(SellVol > 0)
{
SellOrderID = T_Deal1(CodeName,0,2,SellVol,LIMIT_ORDER);
}
SellVol = T_SHSellPosition(CodeName,1);
IF(SellVol > 0)
{
SellOrderID = T_Deal1(CodeName,0,1,SellVol,LIMIT_ORDER);
}
}
ELSE
{
SellVol = T_SellPosition(CodeName);
IF(SellVol > 0)
{
SellOrderID = T_Deal1(CodeName,0,1,SellVol,LIMIT_ORDER);
}
}
}
}
}
投资者咨询:盈利大于500回到0平仓 (文华财经WH8赢智V8.2)
来源:文华财经 日期:2018-6-7 14:57
VAR Modname[3];
// 模组名称
//合约名数组
VAR Model[3];
//循环变量
VAR Count;
GLOBAL_VAR YINBIDSTATE[3], YINASKSTATE[3];
// 计算止盈变量
GLOBAL_VAR LASTBIDVOL[3], LASTASKVOL[3];
// 记录上一次持仓量
GLOBAL_VAR YINBIDTHSTATE[3], YINASKTHSTATE[3];
// 到达浮盈1000后止损
//临时的合约名变量
VAR TempModeName;
VAR BuyVol,SellVol,BuyTodayVol,SellTodayVol;
VAR BuyOrderID,SellOrderID;
VAR CodeCount;
//
VOID MAIN()
{
CodeCount = 3;
Modname[0] = "A";
Modname[1] = "B";
Modname[2] = "C";
Model[0] = Modname[0].F_DealCode();
Model[1] = Modname[1].F_DealCode();
Model[2] = Modname[2].F_DealCode();
FOR(Count = 0;Count < CodeCount; Count = Count + 1)
{
TempModeName = Model[Count];
IF(LASTBIDVOL[Count] != T_BuyPosition(TempModeName))
{
LASTBIDVOL[Count] = T_BuyPosition(TempModeName);
YINBIDSTATE[Count] = 0;
YINBIDTHSTATE[Count] = 0;
}
IF(LASTASKVOL[Count] != T_SellPosition(TempModeName))
{
LASTASKVOL[Count] = T_SellPosition(TempModeName);
YINASKSTATE[Count] = 0;
YINASKTHSTATE[Count] = 0;
}
CodePing(TempModeName, Count);
//MessageOut("Count + " + Count + "TempModeName + " + TempModeName);
}
}
VOID CodePing(VAR CodeName, VAR Count)
{
//判断是否为上海合约,上海合约先判断今仓,再做老仓处理
IF(T_IsSHCode(CodeName))
{
BuyVol = T_SHBuyPosition(CodeName,0);
SellVol = T_SHSellPosition(CodeName,0);
IF(T_BuyProfitLoss(CodeName) <= -1000‖T_BuyProfitLoss(CodeName)>= 500&&T_SellProfitLoss(CodeName) >= 0)
{
IF(BuyVol > 0)
{
BuyOrderID = T_Deal1(CodeName,1,2,BuyVol,LIMIT_ORDER);
}
BuyVol = T_SHBuyPosition(CodeName,1);
IF(BuyVol > 0)
{
BuyOrderID = T_Deal1(CodeName,1,1,BuyVol,LIMIT_ORDER);
}
}
IF(T_SellProfitLoss(CodeName) <= -1000‖T_SellProfitLoss(CodeName) >= 500&&T_SellProfitLoss(CodeName) >= 0)
{
IF(SellVol > 0)
{
SellOrderID = T_Deal1(CodeName,0,2,SellVol,LIMIT_ORDER);
}
SellVol = T_SHSellPosition(CodeName,1);
IF(SellVol > 0)
{
SellOrderID = T_Deal1(CodeName,0,1,SellVol,LIMIT_ORDER);
}
}
}
ELSE
{
BuyVol = T_BuyPosition(CodeName);
SellVol = T_SellPosition(CodeName);
IF(BuyVol != 0)
{
IF(T_BuyProfitLoss(CodeName) <= -1000‖T_BuyProfitLoss(CodeName)>= 500&&T_SellProfitLoss(CodeName) >= 0)
{
BuyOrderID = T_Deal1(CodeName,1,1,BuyVol,LIMIT_ORDER);
}
}
IF(SellVol != 0)
{
IF(T_SellProfitLoss(CodeName) <= -1000‖T_SellProfitLoss(CodeName) >= 500&&T_SellProfitLoss(CodeName) >= 0)
{
SellOrderID = T_Deal1(CodeName,0,1,SellVol,LIMIT_ORDER);
}
}
}
}
技术人员回复
日期:2018-6-7 15:45
投资者咨询:盈利大于500回到0平仓 (文华财经WH8赢智V8.2)
来源:文华财经 日期:2018-6-7 14:57
请老师写个个包括上期所的啊,谢谢
技术人员回复
日期:2018-6-7 21:20
