启动时最前面的代码经常执行不到 (文华财经wh9)

投资者咨询:启动时最前面的代码经常执行不到 (文华财经wh9)
来源:文华财经  日期:2019-6-14 20:11
 程序在启动时会在最前面先执行一段检查的代码,这段代码只会执行一次,多数情况下正常,但有时就略过了这段代码(看不到这段代码产生的日志) 
如何保证在程序载入的时候保证所有代码都执行到?
  
//运行前的检查
if (GetGlobalVar2("Prepare")==0)
{
 SetGlobalVar2("StopFlag",1);
    Commentary("程序版本:"+Version);
    Commentary("账户:"+A_AccountID);
 if (Mod(MaxSetNum,MaxGrid)<>0)
 {
  Commentary("检查:失败 MaxSetNum必须为MaxGrid的整数倍");
  SetGlobalVar2("StopFlag",0);
 }
    MinDiff=Price("MinPrice");
    Multiplier=Price("Unit");
    Commentary("合约最小变动单位:"+Text(MinDiff,3)+ " 合约乘数:"+Text(Multiplier,3));
 BasePrice=Value(GetPrivateProfileString(SymbolName +"_BasePrice",Text(1),Text(0),"网格"));
 BasePriceFlag=Value(GetPrivateProfileString(SymbolName +"_BasePriceFlag",Text(2),Text(0),"网格"));
 if (A_BuyPosition==0&&A_SellPosition==0)
 {
  BasePrice=0;
  BasePriceFlag=0;
 }
 Commentary("BasePrice:"+Text(BasePrice)+" BasePriceFlag:"+Text(BasePriceFlag));
    SetGlobalVar2("Prepare",1);
    Commentary("检查:完成");
}
//主程序 
if (GetGlobalVar2("StopFlag")==1&&GetGlobalVar2("Prepare")==1 && A_IsExchangeOpen==1)
{
}   
技术人员回复
日期:2019-6-14 20:17

您是加入模组运行,还是加载算法交易模型?

 

程序启动是指重新打开模组还是新建模组或算法模型?

 

正常1楼写法在新建模组或算法模型的时候是可以输出内容的,

 

如果是已经加入模组或算法模型运行了一段时间,重新打开的时候就不会再执行这段了

 

 

投资者咨询:启动时最前面的代码经常执行不到 (文华财经wh9)
来源:文华财经  日期:2019-6-14 20:11
1.模组
2.程序启动有时是重新激活,有时是重新打开模组,不是新建
已经运行了一段时间的把它设置为闲置状态以后 Prepare这个全局变量应该就清空了吧
为什么重新打开就不会执行呢  
技术人员回复
日期:2019-6-18 8:20

设为闲置状态,然后重新激活,正常是会把全局变量归零的

 

您复制一下完整模型,只要能测试到1楼现象就可以

 

同时截图我们看下现象,我们本地根据您的设置测试下

   
投资者咨询:启动时最前面的代码经常执行不到 (文华财经wh9)
来源:文华财经  日期:2019-6-14 20:11
回错了
 
 
技术人员回复
日期:2019-6-18 17:03

 另外跟您核实一下

 

前面检查部分没有输出的时候,后面部分是否可以正常执行?

 

您复制一下完整模型,只要能测试到1楼现象就可以

 

同时截图我们看下现象,我们本地根据您的设置测试下