以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  VBS代码 取多头保证金率 取出来的是0  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=184098)

--  作者:weishao
--  发布时间:2021/1/27 11:15:59
--  VBS代码 取多头保证金率 取出来的是0
VBS代码:
\'取多头保证金率:
Function longMarginrate(Formula,Market,Code)
  Call Order.Contract(Code,Market,Multipliter,MinTick,ShortPercent,LongPercent)
longMarginrate=LongPercent
End Function

//pel调用:
保证金率:LONGMARGINRATE(MARKETLABEL,STKLABEL);

--  作者:yukizzc
--  发布时间:2021/1/27 11:24:17
--  

自定义函数的添加方法:

可以通过两种方法添加自定义函数:

1、在公式编辑器界面中,鼠标在“函数”解释定义区单击右键,然后选择“添加自定义函数”。

2、在Visual Basic工程管理器中选择Function模块,进入Visual Basic编辑界面,然后选择“插入”菜单中的“过程”。

有关自定义函数的格式

每个自定义函数都会有一个Formula对象,即使没有参数的自定义函数也至少有这么一个对象参数存在。每次公式系统执行遇到自定义函数的时候,会不断的依次调用它,直至整个公式解释完毕。

注意:请不要试图在Function模块中直接添加自定义函数,因为这样系统不会承认他。


--  作者:yukizzc
--  发布时间:2021/1/27 11:25:54
--  

还有pel本身就有保证金率函数,没有必要去绕一个圈

TACCOUNT(41)

如果你要夸品种使用那么用stkindi去引用上面的函数值,传品种代码过去就行了。

强行用vb定义函数没有意义


--  作者:weishao
--  发布时间:2021/1/27 17:57:30
--  
TACCOUNT(41)取到的是合约信息设置里的值,我想看看vb里的是否是账户的
--  作者:yukizzc
--  发布时间:2021/1/27 20:51:51
--  

都没有账户的,软件都是读取交易-合约信息设置这里的配置,所以都是一个值


--  作者:weishao
--  发布时间:2021/1/28 19:11:43
--  

OrderStatusEx2(OrderID, Status, Filled, Remaining, Price, Code, Market, OrderType, Aspect, Kaiping, Account, AccountType)


 

"Cancelled"  表示订单已经撤销

"Submitted""PreSubmitted"  表示订单已经提交

"Filled"    表示本地订单已经全部成交

等等的状态,有没有区分大小写


--  作者:weishao
--  发布时间:2021/1/28 19:16:45
--  

OrderID

订单ID,使用Buy,Sell,BuyShort,SellShort等方法下单时返回的订单ID


一定要在VBS里用order.Buy下单才会有吗,

--  作者:yukizzc
--  发布时间:2021/1/28 21:37:44
--  

不是的,你所有下单都会触发

这种你自己试下就知道


--  作者:weishao
--  发布时间:2021/1/28 22:12:24
--  VBA保证金率取到的保证金率一直是0,上午好像有取到值的
PEL代码:
VBA保证金率:LONGMARGINRATE(MARKETLABEL,STKLABEL);
取到的保证金率一直是0,上午好像有取到值的
vba代码:
public myLongPercent
public myshortMarginrat
public myMultipliter

Order.Contract Code,Market,Multipliter,MinTick,ShortPercent,LongPercent 

\'取多头保证金率:
Function longMarginrate(Formula,Market,Code)
  longMarginrate=myLongPercent
End Function
图片点击可在新窗口打开查看

帮我看看哪里的问题

--  作者:weishao
--  发布时间:2021/1/28 22:14:02
--  VBA保证金率取到的保证金率一直是0,上午好像有取到值的
Order.Contract Code,Market,Multipliter,MinTick,ShortPercent,LongPercent 

\'取多头保证金率:
Function longMarginrate(Formula,Market,Code)
myLongPercent=LongPercent
  longMarginrate=myLongPercent
End Function

这样可以了