以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  这个代码怎么写  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=180784)

--  作者:kevinsss
--  发布时间:2020/6/23 19:43:22
--  这个代码怎么写
图表,轮询模式下,能不能这样执行:
日内交易,某个品种当日盈利xxx元后,当天之后的信号停止交易,同样亏损xxx元一样

--  作者:kevinsss
--  发布时间:2020/6/23 19:54:23
--  
补充一下,只要盘中触及xxx元即可,可不可以调用ASSET函数?
--  作者:wenarm
--  发布时间:2020/6/24 8:01:22
--  

策略是一开一平模式?


--  作者:kevinsss
--  发布时间:2020/6/29 11:13:59
--  
是的,或者还有什么好的开平仓方法?用轮询触及价格即平仓能做到吗?
一开一平模式指的是判断上次平仓后金额是否达标再决定这次开不开仓吧?

--  作者:FireScript
--  发布时间:2020/6/29 11:23:28
--  
一开一平意思是你赢或亏了之后是需要平仓了是吧。还是说就是持仓不动,不开不平。

--  作者:kevinsss
--  发布时间:2020/6/29 11:59:45
--  
对,只要达到XXX元的标准(不管赢或亏),清仓,并且当日不再开仓
--  作者:FireScript
--  发布时间:2020/6/29 13:34:14
--  
参考这个范例的思路:

VARIABLE:mark:=0;//全局变量,控制当日满足条件后只交易一次。
input:p(26,20,100,8),s(12,5,40,4),m(9,2,60,6),X(500,1,10000,1);//X表示设置的盈亏数值

DIFF :EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  :EMA(DIFF,M);
MACD1 :2*(DIFF-DEA), COLORSTICK;
macdjc:cross(diff,dea),NODRAW;//macd金叉开仓



buy(holding=0 and macdjc AND MARK=0,1,market);//macd金叉开仓

zdyl:(c-ENTERPRICE)*DYNAINFO(209)*abs(holding);//盈利  这里用的收盘价计算盈利,也可以用H来表示盘中触发过
zdks:(ENTERPRICE-c)*DYNAINFO(209)*abs(holding);//亏损  这里用的收盘价计算亏损,也可以用L来表示盘中触发过

if zdyl>X OR zdks>X and holding<>0 then  //盈利或者亏损大于X则平仓,且当日不再开仓
begin
sell(holding>0,holding,market);    
mark:=1;
end

if time=CLOSETIME(0) then mark:=0;//收盘重置全局变量
--  作者:kevinsss
--  发布时间:2020/6/29 20:00:49
--  
有个问题,c-enterprice是本次的交易,假如盈利够了,then。。
但是我想要的是
假如xxx=300,前两笔交易亏了200,即便本次盈利了300元,实际盈利只有100,我想要总盈利是xxx

--  作者:wenarm
--  发布时间:2020/6/30 8:42:57
--  

VARIABLE:SUM_NUMPROFIT=0;

ma5:=ma(5,close);
ma20:=ma(20,close);

cond1:=cross(ma5,ma20);
cond2:=cross(ma20,ma5);

if cond2 and holding>0 then
begin
  sell(1,1,thisclose);
  SUM_NUMPROFIT=SUM_NUMPROFIT+NUMPROFIT(1);
end

if cond1 and holding=0 and ABS(SUM_NUMPROFIT)<1000 then  buy(1,1,thisclose);
if time=closetime(0) then BEGIN SUM_NUMPROFIT:=0;

END