mql5语言的特点、微妙之处以及技巧 - 页 10

 
Alexey Volchanskiy:
有什么方法可以计算出对冲保证金吗?
我认为你可以通过Symbol函数 来计算一切。
 
fxsaber:
谢谢你的提示!在野外,它是SymbolInfoMarginRate。所以现在是这样的
// Размер свободных средств, необходимых для открытия 1 лота на покупку
double GetMarginRequired( const string Symb )
{
}

我们需要明确的是,在MT5中,不同方向的保证金要求可能会有很大不同。也就是说,单一的MT4变体可能无法工作。当然,在外汇市场上,情况不会是这样的。但你必须记住。因此,一般来说,你应该这样写
// Альтернатива OrderCalcMargin
bool MyOrderCalcMargin( const ENUM_ORDER_TYPE action, const string symbol, const double volume, const double price, double &margin )
{
}

非常感谢您!现在它在所有地方工作都没有任何问题。

我不知道"MyOrderCalcMargin"函数是否还在交易,如果是的话,至少在测试器中如何交易)

 
fxsaber:
我认为你可以通过Symbol函数来计算一切。
不幸的是,符号功能的工作是歪打正着

关于交易、自动交易系统和交易策略测试的论坛

虫子,虫子,问题

fxsaber, 2017.02.28 10:48

Metaquotes-Demo,美元账户,RTS-3.17。

TickValue给出了错误的值 - 以卢布为单位,而不是以账户货币(美元)为单位。

FxPro-ECN。符号GOLD和GOLDEURO具有相同的TickValue。虽然,很明显,在欧元兑美元时代,它们应该是不同的。

 
fxsaber:

MT5对FIBOGroup-MT5服务器SGDJPY的恶作剧

在这种情况下,MyOrderCalcMargin的计算是正确的,而普通的OrderCalcMargin却不正确


正常的功能是按照工具设置中规定的合同规格进行计数--保证金货币 为挪威克朗,每手分别为1000挪威克朗。

你可能算作拆分货币对SGDJPY的名称--你得到1000新元的一手。

因此,问题在于经纪人方面对合同的规定不正确。请联系相应服务器的经纪人。

 
fxsaber:

也就是说,为了使所有的OrderSend与交易环境同步并避免陷阱,只需将给定的源代码作为一个mqh-文件,并在你的程序中进行相应的#include。

你可以不再用手鼓跳舞了。

SD告诉我,从下一个版本开始 OrderSend()正常工作 :)

 
MQ亚历山大

常规功能根据工具设置中指定的合同规格进行计算--保证金货币 为挪威克朗,因此每手取1,000挪威克朗

在你的情况下,必须是货币对名称SGDJPY的拆分 - 一手收取1000新元。

因此,问题在于经纪人方面对合同的规定不正确。联系相应服务器的经纪人。

MT5有一个内部隐藏机制,可以将任何货币转换成账户货币。在这种情况下,OrderCalcMargin 1000挪威克朗转换为适当的美元数字并输出。

请使这个机制开放。比如说。

double CurrencyExchange( const string Currency ); // возвращает курс валюты Currency к валюте счета

这些汇率在终端是100%可用的,因为OrderCalcMargin计算了它们。他们的工作在MetaQuotes-Demo美元账户上特别明显,当你采取FORTS符号时--他们的保证金货币是卢布。

由于TickValue芯片/bug的存在,这一点尤为重要

关于交易、自动交易系统和交易策略测试的论坛

虫子,虫子,问题

fxsaber, 2017.02.28 10:48

Metaquotes-Demo,美元账户,RTS-3.17。

TickValue给出了错误的值 - 以卢布为单位,而不是以账户货币(美元)为单位。

FxPro-ECN。符号GOLD和GOLDEURO具有相同的TickValue。虽然,很明显,在欧元兑美元时代,它们应该是不同的。

 
你好!我正在阅读文件。
OrdersTotal

Возвращает количество действующих ордеров.

int  OrdersTotal();

Возвращаемое значение

Значение типа int.

Примечание

Не следует путать между собой действующие отложенные ордера и позиции, которые также отображаются на вкладке "Торговля" в панели "Инструменты". Ордер – это распоряжение на проведение торговой операции, а позиция является результатом одной или нескольких сделок.

При "неттинговом" учете позиций (ACCOUNT_MARGIN_MODE_RETAIL_NETTING и ACCOUNT_MARGIN_MODE_EXCHANGE) по каждому символу в любой момент времени может быть открыта только одна позиция, которая является результатом одной или более сделок. Не следует путать между собой позиции и действующие отложенные ордера, которые также отображаются на вкладке "Торговля" в панели "Инструменты".

При независимом представлении позиций (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING) по каждому символу одновременно может быть открыто несколько позиций.

Смотри также

OrderSelect(), OrderGetTicket(), Свойства ордеров
而我在哪里可以找到"现行命令"一词的解读?
"活跃的挂单",以及不活跃的挂单, 它们是什么?
 
利奥59
你好,我正在阅读文件。
OrdersTotal

Возвращает количество действующих ордеров.

int  OrdersTotal();

Возвращаемое значение

Значение типа int.

Примечание

Не следует путать между собой действующие отложенные ордера и позиции, которые также отображаются на вкладке "Торговля" в панели "Инструменты". Ордер – это распоряжение на проведение торговой операции, а позиция является результатом одной или нескольких сделок.

При "неттинговом" учете позиций (ACCOUNT_MARGIN_MODE_RETAIL_NETTING и ACCOUNT_MARGIN_MODE_EXCHANGE) по каждому символу в любой момент времени может быть открыта только одна позиция, которая является результатом одной или более сделок. Не следует путать между собой позиции и действующие отложенные ордера, которые также отображаются на вкладке "Торговля" в панели "Инструменты".

При независимом представлении позиций (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING) по каждому символу одновременно может быть открыто несколько позиций.

Смотри также

OrderSelect(), OrderGetTicket(), Свойства ордеров
而我在哪里可以找到"现行命令"一词的解读?
"有效的挂单",和无效挂单, 它们是什么?

挂单 - bystop, sellstop, bylimit和bystop。

仓位 - 买入和卖出。

不活跃 - 删除订单和关闭头寸。

 
维塔利-穆齐琴科

挂单 - bystop, sellstop, bylimit和bystop。

仓位 - 买入和卖出。

不活跃 - 删除订单和关闭头寸。

维塔利-穆齐琴科:谢谢你!你是我的朋友。
由于订单是执行交易操作 的订单,只有挂单可以被视为 "有效订单",而买入和卖出头寸不是执行交易操作的订单。还是我 "错过了什么"?
 
有效订单 - 正在等待执行或取消的交易订单,TP/SL和MarginCall订单除外。有效订单可以是买入和卖出。