以文本方式查看主题

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

--  作者:期海中的一夜
--  发布时间:2016/1/26 16:13:14
--  [求助]
IF HOLDING<0 THEN 
BEGIN
IF ENTERPRICE-C>0 THEN
BEGIN
SELLSHORT(ENTERPRICE-C>=F1&&HOLDING=SS,SS/3,THISCLOSE);
SELLSHORT(C-ENTERLOW>=F2,HOLDING,THISCLOSE);
END
这个语句是不是严谨的满足,开空仓盈利F1个点位之后平仓1/3,如果从开仓后的最低点往上F2个点位之后全部平仓?
为什么我看图形上面有的满足了盈利F1个点位却没有平1/3的仓位,而是直接第二个条件就全部平掉的!!!!1


--  作者:jinzhe
--  发布时间:2016/1/26 16:21:01
--  
请举个具体的例子说明一下
--  作者:期海中的一夜
--  发布时间:2016/1/26 16:25:44
--  
第二处箭头  按照思路应该会有一个平2手仓位的地方   可以却在第三处箭头全部平掉了!
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20160126162530.png
图片点击可在新窗口打开查看

--  作者:期海中的一夜
--  发布时间:2016/1/26 16:27:31
--  
我F1设置的是21个点位,第二个箭头那边和开仓点位都相差50个点位  在第二个箭头之前应该会平掉1/3了!
--  作者:期海中的一夜
--  发布时间:2016/1/26 16:28:55
--  
测试的是甲醇品种  一个点一跳  
--  作者:jinzhe
--  发布时间:2016/1/26 16:34:11
--  
把代码都发一下, 我做本地测试
--  作者:期海中的一夜
--  发布时间:2016/1/26 16:36:58
--  
//做小时线的甲醇!

N1:=5;
SS:=6;
MA20:=STKINDIEX(\'\',\'MAVAR.MA20\',0,6,-1,1000);
HH12:=HHV(REF(H,1),12);
LL12:=LLV(REF(L,1),12);
TR1:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:=MA(TR1,25);
ARTRANG:=N1*ATR;
TURERANGE:=MAX(HH12-LL12,ARTRANG);
BKLINE:LL12+(7/10)*TURERANGE;
SKLINE:LL12+(3/10)*TURERANGE;
BKCONDITION:=H>BKLINE&&REF(L,1)<BKLINE&&ABS(C-O)<3*ATR&&REF(C,1)>MA20;
SKCONDITION:=L<SKLINE&&REF(H,1)>SKLINE&&ABS(C-O)<3*ATR&&REF(C,1)<MA20;
IF HOLDING=0 THEN BEGIN
BUY(BKCONDITION,SS,THISCLOSE);
BUYSHORT(SKCONDITION,SS,THISCLOSE);
END
ENTERHIGH:=HHV(H,ENTERBARS+1);
ENTERLOW:=LLV(L,ENTERBARS+1);
//处理多单

IF HOLDING>0 THEN 
BEGIN
IF C-ENTERPRICE>0 THEN
BEGIN
IF H-ENTERPRICE>=F1*MINDIFF THEN  BEGIN SELL(HOLDING=SS,SS/3,THISCLOSE);
END 
SELL(ENTERHIGH-C>=F2*MINDIFF,HOLDING,THISCLOSE);
END

IF C-ENTERPRICE<0 THEN
BEGIN
SELL(ENTERPRICE-C>=F1&&HOLDING=SS,SS/2,THISCLOSE);
SELL(ENTERPRICE-C>=2*F1||C-ENTERLOW>=F2,HOLDING,THISCLOSE);
END
END 

IF HOLDING<0 THEN 
BEGIN
IF ENTERPRICE-C>0 THEN
BEGIN
SELLSHORT(ENTERPRICE-C>=F1&&HOLDING=SS,SS/3,THISCLOSE);
SELLSHORT(C-ENTERLOW>=F2,HOLDING,THISCLOSE);
END
IF ENTERPRICE-C<0 THEN
BEGIN
SELLSHORT(C-ENTERPRICE>=F1&&HOLDING=SS,SS/2,THISCLOSE);
SELLSHORT(C-ENTERPRICE>=2*F1||ENTERHIGH-C>=F2,HOLDING,THISCLOSE);
END
END 

--  作者:期海中的一夜
--  发布时间:2016/1/26 16:37:25
--  
F1和F2你随便定
--  作者:jinzhe
--  发布时间:2016/1/26 16:56:43
--  
MA20:=STKINDIEX(\'\',\'MAVAR.MA20\',0,6,-1,1000);

 

 

我需要这个公式

以及你要给定F1和F2,不要随便来和你不一样


--  作者:期海中的一夜
--  发布时间:2016/1/26 16:57:39
--  
MYC:=HIGH*0.2+LOW*0.2+CLOSE*0.4+OPEN*0.2;
MA20:MA(MYC,20);
F1:21;  
F2:33;