如何让LUA的Amount数值记住在原来基础自动加上1 50
描述:这是一个任何的外汇LUA自动交易策略.红色字是我想改变Amount(这是代表资金数量)部分.下面是有关Amount的代码.functionCreateTrading...
描述:这是一个任何的外汇LUA自动交易策略.红色字是我想改变Amount(这是代表资金数量)部分.下面是有关Amount的代码.
function CreateTradingParameters()
strategy.parameters:addGroup("交易参数");
strategy.parameters:addInteger("Amount", "交易数量", "", 1, 1, 500);--默认的数值是1手.最大500手.但每一次成交都要手动改变数值.无法自动运行加量.如何加入参数使原来默认值得到自动改变倍数的递增.比如:第一次成交完成是1手.第二次成是2.第三次是3.一直这样下去.
end
local Amount;
end
function PrepareTrading()
Amount = instance.parameters.Amount;
end
function enter(BuySell)
valuemap.Quantity = Amount * BaseSize;
end
请教?谢谢///
strategy.parameters:addInteger("Amount", "交易数量", "", 1, 1, 500);--默认的数值是1手起.最前的1. 展开
function CreateTradingParameters()
strategy.parameters:addGroup("交易参数");
strategy.parameters:addInteger("Amount", "交易数量", "", 1, 1, 500);--默认的数值是1手.最大500手.但每一次成交都要手动改变数值.无法自动运行加量.如何加入参数使原来默认值得到自动改变倍数的递增.比如:第一次成交完成是1手.第二次成是2.第三次是3.一直这样下去.
end
local Amount;
end
function PrepareTrading()
Amount = instance.parameters.Amount;
end
function enter(BuySell)
valuemap.Quantity = Amount * BaseSize;
end
请教?谢谢///
strategy.parameters:addInteger("Amount", "交易数量", "", 1, 1, 500);--默认的数值是1手起.最前的1. 展开
1个回答
展开全部
如果希望每次访问 Amount 的时候让它自增,可以使用__index 但是如果 Amount是全局变量的话,最好就不要这样做了,因为这样的话你就要监听_G,这个的代价相对还是比较大的,所以你最好把amount放到一个表里,比如我放到tab里
具体代码如下
tab = {}
_tab = {}
_tab.amount = 0
meta = {
__index = function(t,k)
if k == "amount" then
_tab.amount = _tab.amount + 1
return _tab.amount
else
return _tab[k]
end
end,
__newindex = function(t,k,v)
_tab[k] = v
end}
setmetatable(tab,meta)
tab.amount = 4
print(tab.amount)
print(tab.amount)
print(tab.amount)
实现的过程是
建立一个映射表_tab
给表tab创建访问和创建原表,对应操作_tab里的元素
对应的访问和创建规则就可以你自己定了
有什么疑惑的话可以继续提问,我会跟进,但不保证多久跟进一次
具体代码如下
tab = {}
_tab = {}
_tab.amount = 0
meta = {
__index = function(t,k)
if k == "amount" then
_tab.amount = _tab.amount + 1
return _tab.amount
else
return _tab[k]
end
end,
__newindex = function(t,k,v)
_tab[k] = v
end}
setmetatable(tab,meta)
tab.amount = 4
print(tab.amount)
print(tab.amount)
print(tab.amount)
实现的过程是
建立一个映射表_tab
给表tab创建访问和创建原表,对应操作_tab里的元素
对应的访问和创建规则就可以你自己定了
有什么疑惑的话可以继续提问,我会跟进,但不保证多久跟进一次
追问
如何使用全局变量保存的最后一个位置的大小。
其次,怎样定义在另一个函数的身体功能。
追答
一个变量如果不申明为局部变量则就是全局变量
local a = 1 --申明局部变量a 并且赋值 1
b = 2 --全局变量赋值为2 不需要特殊申明可直接使用
function fun()
return 100
end
定义函数fun返回数字100
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询