以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请求老师帮忙  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=167031)

--  作者:qq39706473
--  发布时间:2018/12/12 10:42:26
--  请求老师帮忙
老师,我的图标程序化,会出现止盈,或者平仓后,会出现程序检查仓位情况,没仓位的时候 会立刻进场,请问要怎么添加指令呢,以多头来说 我止盈后,需要在止盈价格下方某几个点位,才能继续开仓,这样能写吗? 不然每次多出现止盈后,又进场的信号
--  作者:FireScript
--  发布时间:2018/12/12 10:51:46
--  
 你的意思是开仓时候需要考虑上次平仓的价格是吗?比如上次平仓价格是N,那么当前开仓必须是价格N下面几个点位才行是吗?

--  作者:qq39706473
--  发布时间:2018/12/12 10:56:56
--  
恩 对的  老师 不然会重复进场   因为我的代码比较简单,一条线上就多单,线下就空单,所以只能止盈后,回落N个点位还保持原来趋势才能在进去,不然笔笔亏钱
--  作者:FireScript
--  发布时间:2018/12/12 10:58:06
--  
 你把你代码贴下,我在你代码基础上尝试下修改。
--  作者:qq39706473
--  发布时间:2018/12/12 11:05:31
--  
{金牛三色K线}
{主趋势线:EMA(EMA(C,10),10),COLORRED,LINETHICK3;
B:=主趋势线<REF(主趋势线,1);
IF(B-1,主趋势线,DRAWNULL)COLORRED,LINETHICK3;}
主趋势线:EMA(EMA(C,10),10),COLORRED,LINETHICK3;
B:=主趋势线>REF(主趋势线,1);
IF(B-1,主趋势线,DRAWNULL)COLORBLUE,LINETHICK3;
{操盘线:EMA(EMA(C,5),5),COLORRED,LINETHICK2;
Y:=操盘线>REF(操盘线,1);
IF(Y-1,操盘线,DRAWNULL)COLORGREEN,LINETHICK2;}

AA:=EMA(C,5) > EMA(C,20);
BB:=EMA(C,5) < EMA(C,20);
CC:= EMA(C,5) > EMA(C,10);
CC1:=EMA(C,5) < EMA(C,10);
DD:=CLOSE<OPEN;

STICKLINE(AA,H,L,0,0),COLORRED;
STICKLINE(AA,O,C,3,1),COLORRED;
STICKLINE(AA AND DD,O,C,3,0),COLORRED;
STICKLINE(BB,H,L,0,0),COLORGREEN;
STICKLINE(BB,O,C,3,1),COLORGREEN;

STICKLINE(BB AND DD,O,C,3,0),COLORGREEN;


if aa then 
BEGIN
sellshort(holding<0,holding,market);
buy(holding=0,1,limit,c);    
end

if bb then 
BEGIN
sell(holding>0,holding,market);
buyshort(holding=0,1,limit,c);    
end


if holding>0 and hhv(h,enterbars+2)>enterprice+10*mindiff and c<= hhv(h,enterbars+2)-3*mindiff then 止盈1:sell(1,0,limitr,enterprice+8*MINDIFF),ignorecheckprice;
if holding<0 and llv(l,enterbars+2)<enterprice-10*mindiff and c>= hhv(h,enterbars+2)+3*mindiff then 止盈2:sellshort(1,0,limitr,enterprice-8*MINDIFF),ignorecheckprice;





if holding>0 and c<=主趋势线-5*MINDIFF then 止损1:sell(1,holding,market);
if holding<0 and c>=主趋势线+5*MINDIFF then 止损2:sellshort(1,holding,market);

EXITBARS=-1 or EXITBARS>=99

--  作者:qq39706473
--  发布时间:2018/12/12 11:07:01
--  
这套是现在在跑的  傻瓜式做法,如果手动平仓,那出反向信号就会反向平仓一次  又开仓一次 等于2手仓位了,  如果给系统止盈出局,又会在第二次K线上继续开仓,请我怎么修改呢   求老师帮忙修改
--  作者:FireScript
--  发布时间:2018/12/12 13:56:08
--  
 
主趋势线:EMA(EMA(C,10),10),COLORRED,LINETHICK3;
B:=主趋势线>REF(主趋势线,1);
AA:EMA(C,5) > EMA(C,20);
BB:EMA(C,5) < EMA(C,20);

if holding>0 and c<=主趋势线-5*MINDIFF then 止损1:sell(1,holding,market);
if holding<0 and c>=主趋势线+5*MINDIFF then 止损2:sellshort(1,holding,market);
if holding>0 and enterbars<>-1  and hhv(h,enterbars+1)>enterprice+10*mindiff and c<= hhv(h,enterbars+1)-3*mindiff then 止盈1:sell(1,0,limitr,enterprice+8*MINDIFF),ignorecheckprice;
if holding<0 and enterbars<>-1  and llv(l,enterbars+1)<enterprice-10*mindiff and c>= hhv(h,enterbars+1)+3*mindiff then 止盈2:sellshort(1,0,limitr,enterprice-8*MINDIFF),ignorecheckprice;


if aa  then
BEGIN
sellshort(holding<0,holding,market);
buy(holding=0 and (c<=EXITPRICE-5*MINDIFF or not(EXITPRICE)),1,limit,c);    
end

if bb then
BEGIN
sell(holding>0,holding,market);
buyshort(holding=0 and (c>=EXITPRICE+5*MINDIFF or not(EXITPRICE)),1,limit,c);    
end




我设的五个点,你可以自己调整下。

--  作者:qq339706473
--  发布时间:2018/12/12 14:29:44
--  
老师,不行呢 出现了信号错乱了,原来开空多开空位置,现在改完后,错误像图上那样,平仓一次后,没办法判断趋势
--  作者:FireScript
--  发布时间:2018/12/12 14:38:44
--  
 你截图说明下,你文字描述的我不明白你的说的是什么。
--  作者:qq339706473
--  发布时间:2018/12/12 14:40:27
--  
老师,我的思路止盈后,先判断趋势,如果是原来趋势就离止盈点5点以上的空间才继续开原趋势单,如果不是原来趋势,就开反向单了,这样需要怎么修改呢