以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 各位大侠,请问以下的加仓交易语句该怎么写,谢谢! (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=166305) |
-- 作者:yzy666 -- 发布时间:2018/11/4 22:31:44 -- 各位大侠,请问以下的加仓交易语句该怎么写,谢谢! 各位大侠,请问以下的加仓交易语句该怎么写,谢谢! 当持有多仓时,当满足条件A和(and)条件B或(or)条件C时,加多仓2手(只要以后满足这些条件全加仓2手,直到平多仓为止) 当持有空仓时,当满足条件A和(and)条件B或(or)条件C时,加空仓2手(只要以后满足这些条件全加仓2手,直到平空仓为止)
|
-- 作者:wenarm -- 发布时间:2018/11/5 8:01:21 -- 条件c和谁是并列的?or的优先级低于and,你可以根据自己的思想进行修正,目前不清楚你的条件c与谁属于并列关系。 如果是和整个条件语句并列就是下面的, if HOLDING>0 and 条件A and 条件B or 条件C then begin 如果是和条件B并列的话,就是 if HOLDING>0 and 条件A and (条件B or 条件C) then begin |
-- 作者:yzy666 -- 发布时间:2018/11/5 11:43:21 -- 请问大侠以下限价交易的语句是否正确,谢谢 请问大侠以下限价交易的语句是否正确,谢谢 BUY(KD,2,limitr,ma1+15*MINDIFF); //当满足KD条件时,在MA1价至MA1+15点这范围内开多2手(如MA1=3200,则在3200至3215这区间任意价格开多2手)另一个止损语句是 SELL((cross(MA1-25*MINDIFF,askprice)),0,MARKETR); //当现价低于MA1-25点时,以市价全部平多(MA1=3200,如现价<=3175,则以市价全部平仓)
|
-- 作者:FireScript -- 发布时间:2018/11/5 13:15:46 -- KD满时候,会直接按照ma1+15*MINDIFF的价格报单。最后成交肯定是当价格低于ma1+15*MINDIFF才会成交。 [此贴子已经被作者于2018/11/5 13:17:05编辑过]
|
-- 作者:yzy666 -- 发布时间:2018/11/5 13:35:07 -- 那后面的那个止损语句对吗,应用到图表上怎么没有开多信号和止损信号,谢谢 |
-- 作者:FireScript -- 发布时间:2018/11/5 13:54:13 -- 语法没问题。你要看下条件是否满足。你最好把交易条件单独定义成几个变量里面输出下。这样也能直观看到条件是否触发了。你目前给的代码看不出来为什么没有下单信号的。 你这句代码实际会在cross(MA1-25*MINDIFF,askprice)触发时候就下单。也就是价格从MA1-25*MINDIFF<askprice 反转到 MA1-25*MINDIFF>askprice的时候。 [此贴子已经被作者于2018/11/5 13:55:06编辑过]
|
-- 作者:yzy666 -- 发布时间:2018/11/5 21:24:56 -- 大侠能否再帮我看一下我这程序放到图表上怎么没信号 大侠能否再帮我看一下我这程序放到图表上怎么没信号(要嘛就是全是开多的,),是不是哪里有语句不对的地方,谢谢指导! MA1:=MA(CLOSE,5); MA2:=MA(CLOSE,10); VAR1:=ref(hhv(high,10),ENTERBARS+1);//开仓前10个K最高价 VAR2:=cross(CLOSE,ma1);//收盘价上穿ma1 VAR3:=REF(LLV(LOW,10),ENTERBARS+1); VAR4:=cross(ma1,CLOSE); VAR5:=cross(MA1-25*MINDIFF,askprice); VAR6:=cross(bidprice,MA1+25*MINDIFF); KD:=close>ma2 and VAR2;//开多条件 PD:=VAR5;//平多条件 KK:=close<ma2 and VAR4;//开空条件 PK:=VAR6;//平空条件 开多:BUY(KD,2,limitr,ma1+15*MINDIFF); //开多信号 平多:SELL(PD,0,MARKETR); //平多信号 开空:BUYSHORT(KK,2,limitr,ma1-15*MINDIFF); //开空信号 平空:SELLSHORT(PK,0,MARKETR); //平空信号 if HOLDING>0 and KD and CLOSE>VAR1 then begin buy(1,2,limitr,ma1+15*MINDIFF); end if HOLDING>0 and KK and CLOSE<VAR3 then begin buy(1,2,limitr,ma1-15*MINDIFF); end |