以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  debugfile函数问题  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=170700)

--  作者:嗯你好
--  发布时间:2019/6/28 10:16:24
--  debugfile函数问题
debugfile函数不被条件语句控制吗?
下面这样写还是会每秒都输出文本。


if tsellholdingex(\'\',\'\',2)=0 and tbuyholdingex(\'\',\'\',2)=0  then begin 
tbuy(开多平空条件,持仓,mkt,dynainfo(  7)+滑点*mindiff);
if ISLASTBAR then begin
DEBUGFILE(\'D:\\模拟盘测试.TXT\',\'【品种代码】:\'+STKLABEL,0);
    DEBUGFILE(\'D:\\模拟盘测试.TXT\',str,1);
    end
end

--  作者:FireScript
--  发布时间:2019/6/28 10:31:12
--  
tbuy(开多平空条件,持仓,mkt,dynainfo(  7)+滑点*mindiff);

这个语句写的不对。你这里要限价还是市价开仓?用的市价指令,后面却写了一个价格。
并且你的语句修正好之后,你上面的条件限制必须等到开仓的单子成交了才能成功限制到。

--  作者:FireScript
--  发布时间:2019/6/28 10:56:24
--  
 判断下TISREMAINEX 未成交单即可。

--  作者:嗯你好
--  发布时间:2019/6/28 11:08:00
--  
2019-06-28 11:06:19.521    【最新价】=19795.00【高位】=19955.00【低位】=19770.00【持仓】=-1
2019-06-28 11:06:19.536    【品种代码】:NI08
2019-06-28 11:06:19.536    【最新价】=101680.00【高位】=102350.00【低位】=101260.00【持仓】=-1
2019-06-28 11:06:19.536    【品种代码】:PB00
2019-06-28 11:06:19.552    【最新价】=16000.00【高位】=16060.00【低位】=16000.00【持仓】=-1
2019-06-28 11:06:19.552    【品种代码】:AU00
2019-06-28 11:06:19.552    【最新价】=319.50【高位】=320.80【低位】=315.60【持仓】=1
2019-06-28 11:06:20.250    【品种代码】:I09
2019-06-28 11:06:20.250    【最新价】=833.00【高位】=841.00【低位】=824.0

还是每秒都在不断输出,我想开仓条件成立后才输出,否则不输出

--  作者:FireScript
--  发布时间:2019/6/28 11:25:45
--  
 你加了未成交的判断吗?你贴下修改后的代码我看下。
--  作者:嗯你好
--  发布时间:2019/6/28 13:37:53
--  
str:=\'【最新价】=\'+ NUMTOSTR( dynainfo( 7),2 )+\'【高位】=\'+NUMTOSTR( hhh,2 )+\'【低位】=\'+NUMTOSTR( lll,2 )+\'【持仓】=\'+ NUMTOSTR(tholding,0);
end
//多头进场
if tsellholdingex(\'\',\'\',2)=0 and tbuyholdingex(\'\',\'\',2)=0  then begin 
tbuy(开多平空条件,持仓,LMT,hhh+滑点*mindiff);
if TISREMAINEX( 1,\'\',STKLABEL)=0  and islastbar then begin
DEBUGFILE(\'D:\\模拟盘测试.TXT\',\'【品种代码】:\'+STKLABEL,0);
        DEBUGFILE(\'D:\\模拟盘测试.TXT\',str,1);
        end
end

--  作者:FireScript
--  发布时间:2019/6/28 13:54:27
--  
你这个还需要搭配全局变量做下控制。 类似下面这样。
GLOBALVARIABLE:x:=0;
if tsellholdingex(\'\',\'\',2)=0 and tbuyholdingex(\'\',\'\',2)=0  then
begin
//开仓语句
x:=0;//开仓时候重置x为0
end

if TISREMAINEX( 1,\'\',STKLABEL)=0 and x=0 and islastbar then
begin
DEBUGFILE(\'D:\\se.TXT\',\'【品种代码】:\'+STKLABEL,0);
x:=1;//成交之后重置为1
end
--  作者:嗯你好
--  发布时间:2019/6/28 14:02:23
--  
好的我试一下