文章 "EA 交易中的资金管理函数" - 页 5

 
Karlson:

大量存货,100 块碎片,充足的余量。

还是我遗漏了什么....

在测试 IBM 时,我起初不明白为什么它不允许开仓超过 0.5 手。 后来我明白了。50 块碎片,价格约为 200 - 这就是整个初始仓库的 10,000 保证金。

什么是 "碎片"?
 
Urain:
什么是 "hers"?

只需点击一下按钮:)))

纽约证券交易所 1 手=100 股。

一手的股票数量。

 
Karlson:

只需点击一下按钮:))

纽约证券交易所 1 手=100 股。

一手的股票数量。

MQL5函数 SymbolInfoInteger() 返回 #Name = X 股的 1 手值。
Документация по MQL5: Получение рыночной информации / SymbolInfoInteger
Документация по MQL5: Получение рыночной информации / SymbolInfoInteger
  • www.mql5.com
Получение рыночной информации / SymbolInfoInteger - Документация по MQL5
 

CONTRACT_SIZE 是否有误?

 
Karlson:

CONTRACT_SIZE 是否有误?

问题就在这里,CONTRACT_SIZE 已经用在保证金计算公式中了(见本页第二篇文章)。对于货币而言,这已经足够了,但对于 #IBM 而言,这还不够。
 

是的,我昨天很蠢,早些时候也是,也许今天也是,我根本睡不着觉。

对不起,一手 IBM 股票(100 股)的保证金是 20,000 美元,我就是这个意思......没有杠杆......确切地说,是 1:1。

我会把公式反过来写,这样对我个人更有意义。

SYMBOL_MARGIN = (SYMBOL_BID*SYMBOL_TRADE_CONTRACT_SIZE ) / ACCOUNT_LEVERAGE

1 手股票(100 股)的输出应该是 200 美元,而不是 20 000 美元。 公式是正确的,但实际输出却不一样。 好像杠杆没有计算在内。

IBM ---- margin= (200 * 100 ) /100= $200 -- 应该是这样。

欧元兑美元---- margin= (1.23936 * 100,000) /100= 1,239.36 美元 -- 全部正确。

input double lot=1.0;
double marg1=0,marg2=0;
void OnStart()
    { 
     double bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);
     OrderCalcMargin(ORDER_TYPE_BUY,_Symbol,lot,bid,marg1);
     OrderCalcMargin(ORDER_TYPE_SELL,_Symbol,lot,bid,marg2);
     
     Print(_Symbol,"    Buy Margin=",marg1,"     Sell Margin=",marg2);
    }

 
Karlson:

是的,我昨天很蠢,早些时候也是,也许今天也是,我根本睡不着觉。

对不起,一手 IBM 股票(100 股)的保证金是 20,000 美元,我就是这个意思......没有杠杆......确切地说,是 1:1。

我会把公式反过来写,这样对我个人更有意义。

1 手股票(100 股)的输出应该是 200 美元,而不是 20 000 美元。 公式是正确的,但实际输出却不一样。 好像杠杆没有计算在内。

IBM ---- margin= (200 * 100 ) /100= 200 美元 - 应该是这样的。

欧元兑美元 ---- margin= (1.23936 * 100,000) /100= 1,239.36 美元 -- 全部正确。

看来杠杆不是问题,因为获利非常快,我的结论是第一手有 100 份合同,而外汇交易第一手只有 1 份合同。

 
Rosh:

别打哑谜了。您是否已经发现,为外汇市场编写的计算方法在这里行不通?

是的,我已经发现了,现在要做的是找出哪种计算方法有效,但如果不知道内部表示法,我将在猜测中徘徊很长时间。

我需要 MQ 在这个问题上有一个明确的立场,这样我们才能继续前进。

顺便说一句,这不是对您的文章的攻击(您很久以前就指出这篇文章是很久以前写的)。对我来说,澄清这个问题很重要。

 
Urain:

看来问题不在杠杆上,因为利润增长很快,我的结论是第一手有 100 份合同,而在外汇交易中第一手只有 1 份合同。


正如在邻近的一个主题中讨论的那样,杠杆决定了是否可以开更大的交易量。 而利润只是以每点的交易量来计算的。 嗯,还有 TickValue,如果账户是欧元的,这一点很重要。

不,合同价值在任何地方都是非常标准的 - 100 000 单位基础货币。 股票为 100 单位。 除了 Insta 在外汇方面有不同的大小。

无论如何,请等待答复。

大量购买这些股票收取 20 000 欧元是不合逻辑的。数学是正确的。200 * 100 = 20,000,而且没有杠杆,去哪儿了?

 
Karlson:

在邻近的一个主题中讨论过,杠杆决定了是否可以开大交易量,而利润则简单地以每点的交易量来计算。 嗯,还有TickValue,如果账户是欧元,这很重要。

不,合同价值在任何地方都是非常标准的 - 100 000 单位基础货币。 除了 Insta 在外汇上有不同的大小。

无论如何,请等待答复。

大量购买这些股票收取 20 000 欧元是不合逻辑的。数学是正确的。200 * 100 = 20,000,而且没有杠杆,去哪儿了?

金属的 TickValue 不同,基金和外汇的 TickValue 各为 1。

如果没有杠杆,利润就不会随着增长而增长,假设您在外汇上开设了 0.2 手,即 20 000 美元,在基金上开设了相同的交易量,那么在基金上,从这样的存款中获得的利润增长与在外汇上从 100 000 美元中获得的利润增长相同。因此,杠杆是有效的,但合同的大小指定不正确,或者说没有考虑某些系数。

也许基金确实有 100 份的标准合同,但 1 手的订单就会有 100 份标准合同。我没有其他解释(虽然这只是猜测)。

ZЫ 这里没有 "pallitra "和 "help of the hall "是不可能解决的。