以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  关于图表转后台问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=148976)

--  作者:Amber_S
--  发布时间:2017/3/12 17:20:54
--  关于图表转后台问题
请问一下,我现在想将我的图表转后台运行,但是想先在后台下单,同时能在图表上监控,请问一下该用以下哪种方法改我的图表程序??
方法一:
AA:用后台语言表达的开多条件;
BB:用后台语言表达的开空条件;
IF AA THEN 
BEGIN
BUY(1,SS,MARKET);
TBUY(1,SS,MKT);
END

IF BB THEN
BEGIN
SELL(1,SS,MARKET);
TSELL(1,SS,MKT);
END

方法二:
AA:用图表语言表达的开多条件;
BB:用图表语言表达的开空条件;
IF AA THEN 
BEGIN
BUY(1,SS,MARKET);
TBUY(1,SS,MKT);
END

IF BB THEN
BEGIN
SELL(1,SS,MARKET);
TSELL(1,SS,MKT);
END

--  作者:jinzhe
--  发布时间:2017/3/13 9:09:32
--  
后台和图表是两个系统,后台不能被图表所监控
--  作者:Amber_S
--  发布时间:2017/3/13 9:57:14
--  
http://www.weistock.com/bbs/dv_rss.asp?s=xhtml&boardid=4&id=100299&page=67
我是看到了这个例子,所以想看看这是怎么运作的。。。如果按照图表程序在后台下单会提高效率吗??

--  作者:jinzhe
--  发布时间:2017/3/13 10:04:54
--  

效率的话要看你是怎么写的。


--  作者:Amber_S
--  发布时间:2017/3/13 10:11:26
--  
就按照我上面方法二的方法来写效率会有提高吗??而且运行程序是应该加载在图表上,还是用CTRL+A那个后台程序化呢??

http://www.weistock.com/bbs/dispbbs.asp?boardid=4&ID=61954
刚刚看到这个例子,上面说“”如果不和图表出相同信号,不是问题,是对的”。。这样的话,那将测试好的图表系统改成后台岂不是没有意义??那和自己乱写一个后台系统也没什么区别呀?

--  作者:jinzhe
--  发布时间:2017/3/13 10:20:13
--  

效率问题还是如上面所讲,要看你的代码怎么写,

同样的,后台交易和图表交易是两个独立的系统,信号不一致说明后台和图表机制下结果不一致。但是思路都是对的


--  作者:jinzhe
--  发布时间:2017/3/13 10:37:59
--  

最后在图表上交易还是在后台上交易

这个就是纯粹看你自己的需求了,


--  作者:Amber_S
--  发布时间:2017/3/13 10:56:39
--  
噢噢,这样。。。

//账户信息   
系统资产:ASSET,NODRAW;

系统持仓:HOLDING,NODRAW;

浮动盈亏:OPENPROFIT,NODRAW;

当日盈亏:(ASSET - REF(ASSET,TODAYBAR)),NODRAW;



//判断趋势

INPUT:SS(10,1,100,1);  //开仓手数  

INPUT:N1(5,1,50,1);

INPUT:N2(13,1,100,1);

INPUT:ZSJG(10000,0,15000,100); //止损价格


MA1:MA(C,N1);

MA2:MA(C,N2); 

DIFF2:=MA(CLOSE,5)-MA(CLOSE,26);

DEA:=MA(DIFF2,13);

MACD1:=2*(DIFF2-DEA);



KD:=MA1>MA2 AND MACD1>0 AND HOLDING=0;

KK:=MA2>MA1 AND MACD1<0 AND HOLDING=0;




//开仓

IF KD THEN

  BEGIN

    BUY(1,SS,MARKET),ORDERQUEUE;

  END


IF KK THEN

  BEGIN

    BUYSHORT(1,SS,MARKET),ORDERQUEUE;

  END 



//平仓

开仓价:ENTERPRICE,COLORRED;



PD1:=-OPENPROFIT>=ZSJG AND HOLDING>0 AND ENTERBARS>0;   //固定止损

PK1:=-OPENPROFIT>=ZSJG AND HOLDING<0 AND ENTERBARS>0;
  


PD2:=REF(C,1)<MA1 AND C<MA1 AND MACD1<0 AND HOLDING>0 AND ENTERBARS>0;   //平多

PK2:=REF(C,1)>MA1 AND C>MA1 AND MACD1>0 AND HOLDING<0 AND ENTERBARS>0;  //平空



IF PD1 OR PD2 THEN

  BEGIN

    SELL(1,SS,MARKET),ORDERQUEUE;
  
  END



IF PK1 OR PK2 THEN
 
  BEGIN

    SELLSHORT(1,SS,MARKET),ORDERQUEUE;
 
  END
    
这是我的源码,请问能不能帮我改成后台看看??


--  作者:jinzhe
--  发布时间:2017/3/13 11:03:49
--  

INPUT:SS(10,1,100,1);  //开仓手数 


INPUT:N1(5,1,50,1);


INPUT:N2(13,1,100,1);


INPUT:ZSJG(10000,0,15000,100); //止损价格

 


MA1:MA(C,N1);


MA2:MA(C,N2);


DIFF2:=MA(CLOSE,5)-MA(CLOSE,26);


DEA:=MA(DIFF2,13);


MACD1:=2*(DIFF2-DEA);

 

 


KD:=MA1>MA2 AND MACD1>0 AND tbuyHOLDING(0)=0;


KK:=MA2>MA1 AND MACD1<0 AND tsellHOLDING(0)=0;

 

 

 


//开仓


IF KD THEN


  BEGIN


    tBUY(1,SS,mkt);


  END

 


IF KK THEN


  BEGIN


    tBUYSHORT(1,SS,mkt);


  END

 

 


//平仓

 

 

 

 

PD1:=tOPENPROFIT<=-ZSJG AND tbuyHOLDING(0)>0 AND tENTERBARS>0;   //固定止损


PK1:=tOPENPROFIT<=-ZSJG AND tsellHOLDING(0)>0 AND tENTERBARS>0;
 

 


PD2:=REF(C,1)<MA1 AND C<MA1 AND MACD1<0 AND tbuyHOLDING(0)>0 AND tENTERBARS>0;   //平多


PK2:=REF(C,1)>MA1 AND C>MA1 AND MACD1>0 AND tsellHOLDING(0)>0 AND tENTERBARS>0;  //平空

 

 


IF PD1 OR PD2 THEN


  BEGIN


    tSELL(1,SS,mkt);
 
  END

 

 


IF PK1 OR PK2 THEN
 
  BEGIN


    tSELLSHORT(1,SS,mkt);
 
  END


--  作者:Amber_S
--  发布时间:2017/3/13 13:32:59
--  
额,我有个 问题,tbuyHOLDING(0)是今日买持,我是想在空仓的情况下才有开仓信号,那是不是应该在开多和开空条件后面都用tbuyHOLDING(1)=0 AND tSELLHOLDING(1)=0   ??

即变成:

KD:=MA1>MA2 AND MACD1>0 AND tbuyHOLDING(1)=0 AND tSELLHOLDING(1)=0;


KK:=MA2>MA1 AND MACD1<0 AND tbuyHOLDING(1)=0 AND tSELLHOLDING(1)=0;


是这样吗?