Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共9 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:”单日亏损70点不再开新仓 “ 怎么编写

1楼
fanshuai 发表于:2015/5/17 23:37:59
求老师或者大牛帮编写: 股指单日亏损70点不再开仓   以及放在哪个位置需要用变量么?
2楼
jinzhe 发表于:2015/5/18 9:02:50
所有亏损一共70点吗?还是盈利和亏损一起算之后亏70点
3楼
fanshuai 发表于:2015/5/18 16:25:02
盈利和亏损一起算之后亏70点  麻烦老师了
4楼
jinzhe 发表于:2015/5/18 16:40:35

variable:bj=0;

variable:ss=0;

定义全局变量,ss用来记录是否体总体的盈利亏损值,bj用来对亏损超过70之后做标记

 

if 开多条件 and bj=0 and holding=0 then buy......;

if 开空条件  and bj=0 and holding=0 then buyshort......;

所有的开多开空条件都需要这样写,多加一个bj=0的条件

 

 

if 平多条件 and holding>0 then begin

   sell(1,平仓手数,thisclose);

   ss:=ss+exitprice-enterprice;

end

 

if 平空条件 and holding<0 then begin

    sellshort(1,平仓手数,thisclose);

    ss:=ss+enterprce-exitprice;

end

 

所有的平多和平空语句都要这样写:1 条件里面多加一个holding判断 2要多加一句ss赋值

 

 

if ss<=-70 then bj:=1;

当总体亏损过70之后,bj赋值为1,那么开仓条件里面的bj=0 的条件就不满足,从而达到无法开仓的效果

if time=closetime(0) then bj:=0;

收盘之后重新把bj重新赋值为0,不影响第二天的亏损计算

5楼
fanshuai 发表于:2015/6/2 2:00:27
老师我研究了半天实在解决不了,因为我的是反手日内策略。我代码如下:能否直接帮修改下。就是加上单日亏损超70点不再开新仓这个条件。


MA1:=ema(o,5);
MA2:=ema(o,10);
平空开多条件:=MA1>MA2  and  (HOLDING<=0);
平多开空条件:=MA1<MA2  and (HOLDING>=0);
T1:=((TIME>91500) and  (TIME<151500));
T2:=(TIME>=151500);
开盘开多条件:=MA1>MA2 ;
开盘开空条件:=MA1<MA2 ;
收盘平多:SELL((T2 and  (HOLDING>0)),HOLDING,THISCLOSE);
收盘平空:SELLSHORT((T2 and  (HOLDING<0)),HOLDING,THISCLOSE);
if (开盘开多条件) then BUY(((HOLDING=0) and  T1),开仓手数,THISCLOSE);
if (开盘开空条件) then BUYSHORT(((HOLDING=0) and  T1),开仓手数,THISCLOSE);
if (平空开多条件) then 
begin
SELLSHORT((HOLDING<0),HOLDING,THISCLOSE);
BUY(((HOLDING=0) and  T1),开仓手数,THISCLOSE);
end
if (平多开空条件) then 
begin
SELL((HOLDING>0),HOLDING,THISCLOSE);
BUYSHORT(((HOLDING=0) and  T1),开仓手数,THISCLOSE);
end

6楼
jinzhe 发表于:2015/6/2 9:13:48

variable:n=0;
variable:bj=0;
MA1:=ema(o,5);
MA2:=ema(o,10);
开仓手数:=1;
平空开多条件:=MA1>MA2  and  (HOLDING<=0);
平多开空条件:=MA1<MA2  and (HOLDING>=0);
T1:=((TIME>91500) and  (TIME<151500));
T2:=(TIME>=151500);
开盘开多条件:=MA1>MA2 ;
开盘开空条件:=MA1<MA2 ;
收盘平多:SELL((T2 and  (HOLDING>0)),HOLDING,THISCLOSE);
收盘平空:SELLSHORT((T2 and  (HOLDING<0)),HOLDING,THISCLOSE);
if (开盘开多条件) and holding=0 and bj=0 then BUY(((HOLDING=0) and  T1),开仓手数,THISCLOSE);
if (开盘开空条件) and holding=0 and bj=0 then BUYSHORT(((HOLDING=0) and  T1),开仓手数,THISCLOSE);
if (平空开多条件) and holding<0  then
begin
SELLSHORT((HOLDING<0),HOLDING,THISCLOSE);
n:=enterprice-exitprice+n;
if n<=-70 then bj:=1;
end
if (平多开空条件) then
begin
SELL((HOLDING>0),HOLDING,THISCLOSE);
n:=n+exitprice-enterprice;
if n<=-70 then bj:=1;
end

if time=closetime(0) then begin
 bj:=0;
 n:=0;
end

7楼
fanshuai 发表于:2015/6/2 13:56:41
谢谢老师。刚根据老师的修改了,但是好像平空后不会反手了。在下一根K再开空。
图片点击可在新窗口打开查看此主题相关图片如下:信号.png
图片点击可在新窗口打开查看
8楼
fanshuai 发表于:2015/6/2 13:58:29
说错,是平多后不会反手了,平空也一样不会反手。都是等下一根K线才开仓。
9楼
jinzhe 发表于:2015/6/2 14:11:42

variable:n=0;
variable:bj=0;
MA1:=ema(o,5);
MA2:=ema(o,10);
开仓手数:=1;
平空开多条件:=MA1>MA2  and  (HOLDING<=0);
平多开空条件:=MA1<MA2  and (HOLDING>=0);
T1:=((TIME>91500) and  (TIME<151500));
T2:=(TIME>=151500);
开盘开多条件:=MA1>MA2 ;
开盘开空条件:=MA1<MA2 ;
收盘平多:SELL((T2 and  (HOLDING>0)),HOLDING,THISCLOSE);
收盘平空:SELLSHORT((T2 and  (HOLDING<0)),HOLDING,THISCLOSE);

if (平空开多条件) and holding<0  then
begin
SELLSHORT((HOLDING<0),HOLDING,THISCLOSE);
n:=enterprice-exitprice+n;
if n<=-70 then bj:=1;
end
if (平多开空条件) then
begin
SELL((HOLDING>0),HOLDING,THISCLOSE);
n:=n+exitprice-enterprice;
if n<=-70 then bj:=1;
end
if (开盘开多条件) and holding=0 and bj=0 then BUY(((HOLDING=0) and  T1),开仓手数,THISCLOSE);
if (开盘开空条件) and holding=0 and bj=0 then BUYSHORT(((HOLDING=0) and  T1),开仓手数,THISCLOSE);
if time=closetime(0) then begin
 bj:=0;
 n:=0;
end

共9 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.03125 s, 3 queries.