以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  每月交接日(第三个星期五)平仓的VBA代码如何写?  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=184449)

--  作者:solarhe2006
--  发布时间:2021/3/1 14:21:41
--  每月交接日(第三个星期五)平仓的VBA代码如何写?

variable:n=0;

if weekday<ref(weekday,1) then n:=n+1;

if month<>ref(month,1) then n:=1;

if n=3 and weekday=5 and time=closetime(0) then begin

    sell(1,0,market);

    sellshort(1,0,market);

end

\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'

请教下:

VBA代码如何写?

--  作者:yukizzc
--  发布时间:2021/3/1 15:01:15
--  

你可以直接用vba调用pel的方式去调用pel里现成的指标

 

Set Formula = marketdata.STKINDI("if08","zj","ma(5,10,20,60)",0,0) \'调用中金所IF08合约的1分钟的MA移动平均线指标,参数依次是5,10,20,60

msgbox Formula.GetBufData("ma3",924) \'显示第925k线上的MA3指标线数值


--  作者:solarhe2006
--  发布时间:2021/3/1 15:42:13
--  
你好,请把这句:
if month<>ref(month,1) then n:=1;
用VBA语言写一下吗?

--  作者:yukizzc
--  发布时间:2021/3/1 16:22:38
--  

\'得到上期所指定品种的日线数据

Set data1= marketdata.GetHistoryData("rb00","sq",5)

 

先取得一个数组,然后这个data1有一个属性

Date

读取或设置基于0零指定序号的日期,例如 History.Date(10) = "2000-1-1",表示设置第11个数据的日期

 

这是一个字符串你还要根据这个字符串去判断最新一个数据的月和前面一个数据的月是否一样。

 

 

建议如果不是必须你直接用pel的结果调用过来就行了,如果要用vba纯写你需要自己做很多代码处理工作


--  作者:solarhe2006
--  发布时间:2021/3/1 17:52:01
--  
Sub SmpYearHour()

\'以对话框显示当前时间

MsgBox "当前日期:" & Day(Date) &"_" & Day(Date-1)

if Day(Date)< Day(Date-1)then
MsgBox "当前日期是月初第一天:" & Year(Now()) & "年" & Month(Now()) & "月" & Day(Now())
else
MsgBox Year(Now()) & "年" & Month(Now()) & "月" & Day(Now()) & "不用换月"
end if

End Sub
我有个VBA程序,想每个月初执行一次,目前是这么写的月初执行,想试试VBA其他的写法。图表交易和后台交易就不要用了,金字塔的PYTHON完善后我再试试PYTHON吧。