// Синхронизирует VirtualPointerTo-окружение на основе текущего (выбранного) и VirtualPointerOut (для закрытия позиций).staticbool SyncChannel( conststring &Symb, const MAGIC_TYPE Magic, constdouble Lots,
const VIRTUAL_POINTER &VirtualPointerTo, const VIRTUAL_POINTER &VirtualPointerOut, constint FlagChange = false )
{
// Нужно для механизма IsNull.if (!VirtualPointerTo.GetHandle() || !VIRTUAL::GetHandle())
_B2(VIRTUAL::Snapshot());
constbool IsNull = !OrdersTotal() && !_VP(VirtualPointerTo, OrdersTotal());
bool Res = IsNull || !FlagChange || _B(SYNCCHANNEL::IsNotChange(true), 500);
if (!IsNull)
{
Res &= SYNCCHANNEL::IsCloseBy(/*Symb*/) && MACRO_ISCHANGE(SYNCCHANNEL::SyncCloseBy(Symb, Magic, VirtualPointerTo/*, (inMinLotCorrection <= 0)*/));
Res &= MACRO_ISCHANGE(SYNCCHANNEL::SyncExistOrders(Symb, Magic, VirtualPointerTo, VirtualPointerOut));
if (Lots && (inMinLotCorrection > Lots))
::Alert("inMinLotCorrection(" + (string)inMinLotCorrection + ") > Lots(" + (string)Lots + ")");
Res &= MACRO_ISCHANGE(SYNCCHANNEL::SetNewLimit(Symb, Magic, Lots, OP_BUYLIMIT, VirtualPointerTo, inMinLotCorrection));
Res &= MACRO_ISCHANGE(SYNCCHANNEL::SetNewLimit(Symb, Magic, Lots, OP_SELLLIMIT, VirtualPointerTo, inMinLotCorrection));
}
return(Res);
}
Эта функция только синхронизирует две виртуальные среды? Или она может синхронизировать реальную и виртуальную среды? Например, я хочу, чтобы при открытии позиции в виртуальной среде она сразу же открывалась и в реальной среде (или наоборот). Как это сделать?
Привет, автор, у меня есть вопрос, по которому хотел бы проконсультироваться. Как мне сбросить виртуальную среду? Я имею в виду не удаление и повторное создание среды, а именно сброс информации конкретной VIRTUAL_POINTER - например, очистку истории ордеров, позиций, тиков и т.д. Есть ли готовый метод для этого?
hini #: Привет, автор, у меня есть вопрос, по которому хотел бы проконсультироваться. Как мне сбросить виртуальную среду? Я имею в виду не удаление и повторное создание среды, а именно сброс информации конкретной VIRTUAL_POINTER - например, очистку истории ордеров, позиций, тиков и т.д. Есть ли готовый метод для этого?
Если вы сбрасываете все значения, то VIRTUAL_POINTER-переменную замените просто новой средой.
Если же нужно уменьшить историю торговли, то для этого есть VIRTUAL::ReduceHistory.
Я выбрал виртуальную среду перед созданием снимка, поэтому снимок сохраняется для этой виртуальной среды, верно?
Разница между созданием снимка реальной или виртуальной среды заключается в выборе виртуальной/реальной среды перед созданием снимка, верно?Возможно возникновение ошибки деления на ноль
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Библиотеки: Virtual
fxsaber, 2025.06.30 09:20
Спасибо за баг-репорт, исправлено.
Есть некоторые отличия вычисления свопов для CloseBy-позиций в MT5-тестере и Virtual.
Я выбрал виртуальную среду перед созданием снимка, поэтому снимок сохраняется для этой виртуальной среды, верно?
Разница между созданием снимка реальной или виртуальной среды заключается в выборе виртуальной/реальной среды перед созданием снимка, верно?Нет, Snapshot всегда создается только для реальной среды, вне зависимости от того, где вы находитесь.
Вы можете вообще не использовать виртуальные окружения и при этом работать через Snapshot.
Эта функция только синхронизирует две виртуальные среды? Или она может синхронизировать реальную и виртуальную среды? Например, я хочу, чтобы при открытии позиции в виртуальной среде она сразу же открывалась и в реальной среде (или наоборот). Как это сделать?
Snapshot всегда создается только для реальной среды, вне зависимости от того, где вы находитесь.
Есть некоторые отличия вычисления свопов для CloseBy-позиций в MT5-тестере и Virtual.
Я проверю еще раз, когда будет время.
Эта функция только синхронизирует две виртуальные среды? Или она может синхронизировать реальную и виртуальную среды?
Любое окружение с любым другим.
Например, я хочу, чтобы при открытии позиции в виртуальной среде она сразу же открывалась и в реальной среде (или наоборот). Как это сделать?
Вам нужно написать свою функцию. Это непросто даже не в универсальном варианте, к сожалению.
Любое окружение с любым другим.
Вам нужно написать свою функцию. Это непросто даже не в универсальном варианте, к сожалению.
Это действительно сложно и требует постепенного понимания.
Привет, автор, у меня есть вопрос, по которому хотел бы проконсультироваться. Как мне сбросить виртуальную среду? Я имею в виду не удаление и повторное создание среды, а именно сброс информации конкретной VIRTUAL_POINTER - например, очистку истории ордеров, позиций, тиков и т.д. Есть ли готовый метод для этого?
Если вы сбрасываете все значения, то VIRTUAL_POINTER-переменную замените просто новой средой.
Если же нужно уменьшить историю торговли, то для этого есть VIRTUAL::ReduceHistory.