//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- bool CheckOrders() // Есть массив с базовыми ордерами, открытыми по рынку InfoOrderNew[0][200] { // Есть массив с лок ордерами, выставленными к базовым InfoOrderNew[1][200] int TypeOrder; string Type = "", OrderComm = ""; bool OpenLockOrder = false; // Флаг на установку лок ордера
for(int i=OrdersTotal()-1;i>=0;i--) // Выполняем перебор по рыночн. и отлож. ордерам { if((OrderSelect(i,SELECT_BY_POS) == true) // Если есть следующ. && (OrderSymbol() == Symbol())) // .. и наша вал.пара { OrderComm = OrderComment(); // Выбираем соответствующий комментарий ордера TypeOrder = OrderType(); // Выбираем соответствующий тип ордера for(int n=0; n<=199; n++) // Выполняем прогон по массиву ордеров { if(StringFind(OrderComm,"BaseIndex #"+IntegerToString(n)+"_",0)>=0) // Ищем базовый ордер с индексом в комментарии, соответствующем номеру ячейки в массиве ордеров { if((TypeOrder == InfoOrderNew[0][n].TypeOrder) == OP_BUY) // Если находим и наш ордер в массиве является BUY { if(InfoOrderNew[1][n].TypeOrder == 1 || InfoOrderNew[1][n].TypeOrder == 5) // Проверяем, выставлен ли к нему лок ордер (SELL или SELLSTOP) в массиве лок ордеров { if(InfoOrderNew[1][n].TypeOrder == 1) Type = "Sell"; if(InfoOrderNew[1][n].TypeOrder == 5) Type = "SellStop"; if(Debug) Print("Функция CheckOrders(): К ордеру Buy #",InfoOrderNew[0][n].TicketOrder," найден Lock-ордер ",Type," #",InfoOrderNew[1][n].TicketOrder,"."); break; // Если лок выставлен, то выходим из функции } else// Если нет, то { if(Debug) Print("Функция CheckOrders(): К ордеру Buy #",InfoOrderNew[0][n].TicketOrder," не найден Lock-ордер. Необходимо его установить!"); OpenLockOrder = true; // Даем сигнал на установку лока } } if((TypeOrder == InfoOrderNew[0][n].TypeOrder) == OP_SELL) // Если наш ордер в массиве является SELL { if(InfoOrderNew[1][n].TypeOrder == 0 || InfoOrderNew[1][n].TypeOrder == 4) // Проверяем, выставлен ли к нему лок ордер (BUY или BUYSTOP) в массиве лок ордеров { if(InfoOrderNew[1][n].TypeOrder == 0) Type = "Buy"; if(InfoOrderNew[1][n].TypeOrder == 4) Type = "BuyStop"; if(Debug) Print("Функция CheckOrders(): К ордеру Sell #",InfoOrderNew[0][n].TicketOrder," найден Lock-ордер ",Type," #",InfoOrderNew[1][n].TicketOrder,"."); break; // Если лок выставлен, то выходим из функции } else// Если нет, то { if(Debug) Print("Функция CheckOrders(): К ордеру Sell #",InfoOrderNew[0][n].TicketOrder," не найден Lock-ордер. Необходимо его установить!"); OpenLockOrder = true; // Даем сигнал на установку лока } } } } } } return(OpenLockOrder); // Передаем нашей функции полученное значение }
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- bool CheckOrders() // Есть массив с базовыми ордерами, открытыми по рынку InfoOrderNew[0][200] { // Есть массив с лок ордерами, выставленными к базовым InfoOrderNew[1][200] int TypeOrder; string Type = "", OrderComm = ""; bool OpenLockOrder = false; // Флаг на установку лок ордера
for(int i=OrdersTotal()-1;i>=0;i--) // Выполняем перебор по рыночн. и отлож. ордерам { if((OrderSelect(i,SELECT_BY_POS) == true) // Если есть следующ. && (OrderSymbol() == Symbol())) // .. и наша вал.пара { OrderComm = OrderComment(); // Выбираем соответствующий комментарий ордера TypeOrder = OrderType(); // Выбираем соответствующий тип ордера for(int n=0; n<=199; n++) // Выполняем прогон по массиву ордеров { if(StringFind(OrderComm,"BaseIndex #"+IntegerToString(n)+"_",0)>=0) // Ищем базовый ордер с индексом в комментарии, соответствующем номеру ячейки в массиве ордеров { if((TypeOrder == InfoOrderNew[0][n].TypeOrder) == OP_BUY) // Если находим и наш ордер в массиве является BUY { if(InfoOrderNew[1][n].TypeOrder == 1 || InfoOrderNew[1][n].TypeOrder == 5) // Проверяем, выставлен ли к нему лок ордер (SELL или SELLSTOP) в массиве лок ордеров { if(InfoOrderNew[1][n].TypeOrder == 1) Type = "Sell"; if(InfoOrderNew[1][n].TypeOrder == 5) Type = "SellStop"; if(Debug) Print("Функция CheckOrders(): К ордеру Buy #",InfoOrderNew[0][n].TicketOrder," найден Lock-ордер ",Type," #",InfoOrderNew[1][n].TicketOrder,"."); break; // Если лок выставлен, то выходим из функции } else// Если нет, то { if(Debug) Print("Функция CheckOrders(): К ордеру Buy #",InfoOrderNew[0][n].TicketOrder," не найден Lock-ордер. Необходимо его установить!"); OpenLockOrder = true; // Даем сигнал на установку лока } } if((TypeOrder == InfoOrderNew[0][n].TypeOrder) == OP_SELL) // Если наш ордер в массиве является SELL { if(InfoOrderNew[1][n].TypeOrder == 0 || InfoOrderNew[1][n].TypeOrder == 4) // Проверяем, выставлен ли к нему лок ордер (BUY или BUYSTOP) в массиве лок ордеров { if(InfoOrderNew[1][n].TypeOrder == 0) Type = "Buy"; if(InfoOrderNew[1][n].TypeOrder == 4) Type = "BuyStop"; if(Debug) Print("Функция CheckOrders(): К ордеру Sell #",InfoOrderNew[0][n].TicketOrder," найден Lock-ордер ",Type," #",InfoOrderNew[1][n].TicketOrder,"."); break; // Если лок выставлен, то выходим из функции } else// Если нет, то { if(Debug) Print("Функция CheckOrders(): К ордеру Sell #",InfoOrderNew[0][n].TicketOrder," не найден Lock-ордер. Необходимо его установить!"); OpenLockOrder = true; // Даем сигнал на установку лока } } } } } } return(OpenLockOrder); // Передаем нашей функции полученное значение }
2017.01.1518:23:51.0622017.01.0304:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция SendMarketOrder(): Торговля разрешена, отправляем ордер... 2017.01.1518:23:51.0622017.01.0304:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: open #1 buy 0.10 GBPUSD at 1.23020 ok 2017.01.1518:23:51.0622017.01.0304:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция SendMarketOrder(): Ордер отправлен успешно! Характеристики ордера: Buy#1; Цена открытия: 0.0; Лот: 0.1; Стоплосс: 0.0; Тейкпрофит: 0.0. 2017.01.1518:23:51.0622017.01.0304:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: В работе функция ModifyOrder() 2017.01.1518:23:51.0622017.01.0304:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция ModifyOrder() 2017.01.1518:23:51.0622017.01.0304:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция ModifyOrder(): Торговый поток свободен! 2017.01.1518:23:51.0622017.01.0304:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: modify #1 buy 0.10 GBPUSD at 1.23020 sl: 1.18020 tp: 1.23520 ok 2017.01.1518:23:51.0622017.01.0304:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция ModifyOrder(): Модификация ордера выполнена успешно! 2017.01.1518:23:51.0622017.01.0304:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: В работе функция SetPendingOrder() 2017.01.1518:23:51.0622017.01.0304:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция SetPendingOrder(): Выставленная цена SellStop ордера удовлетворяет условиям брокера. 2017.01.1518:23:51.0622017.01.0304:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: open #2 sell stop 0.10 GBPUSD at 1.22020 ok 2017.01.1518:23:51.0622017.01.0304:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция SetPendingOrder(): Отложенный ордер выставлен c 1-й попытки! Характеристики ордера: SellStop #2; Цена: 1.2202; Лот: 0.1. 2017.01.1518:23:51.0622017.01.0304:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Отложенный SellStop ордер успешно установлен! 2017.01.1518:23:51.1092017.01.0304:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Проверка заполнения массива Lock-ордерами. Ордер Тикет #2; Цена=1.2202; Тип=5; ячейка[0]. 2017.01.1518:23:51.1092017.01.0304:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Проверка заполнения массива обычными ордерами. Ордер Тикет #1; Цена=1.2302; Тип=0; ячейка[0]. 2017.01.1518:23:51.1092017.01.0304:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция OpenOrders(): Общее количество найденных ордеров = 2. 2017.01.1518:23:51.1092017.01.0304:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция OpenOrders(): Общее количество рыночных ордеров = 1. 2017.01.1518:23:51.1092017.01.0304:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция OpenOrders(): Общее количество Lock-ордеров = 1. 2017.01.1518:23:51.1092017.01.0304:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция CheckOrders(): К ордеру Sell #1 не найден Lock-ордер. Необходимо его установить!
2017.01.1523:09:48.2342017.01.0309:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Проверка заполнения массива Lock-ордерами. Ордер Тикет #4; Цена=1.2387; Тип ордера=BuyStop; ячейка[1]. 2017.01.1523:09:48.2342017.01.0309:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Проверка заполнения массива обычными ордерами. Ордер Тикет #3; Цена=1.2287; Тип ордера=Sell; ячейка[1]. 2017.01.1523:09:48.2342017.01.0309:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Проверка заполнения массива Lock-ордерами. Ордер Тикет #2; Цена=1.2202; Тип ордера=SellStop; ячейка[0]. 2017.01.1523:09:48.2342017.01.0309:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Проверка заполнения массива обычными ордерами. Ордер Тикет #1; Цена=1.2302; Тип ордера=Buy; ячейка[0]. 2017.01.1523:09:48.2342017.01.0309:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция OpenOrders(): Общее количество найденных ордеров = 4. 2017.01.1523:09:48.2342017.01.0309:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция OpenOrders(): Общее количество рыночных ордеров = 2. 2017.01.1523:09:48.2342017.01.0309:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция OpenOrders(): Общее количество Lock-ордеров = 2. 2017.01.1523:09:48.2342017.01.0309:30:00Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция CheckOrders(): К ордеру Sell #3 найден Lock-ордер BuyStop #4. 2017.01.1523:09:48.2342017.01.0309:30:00Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция CheckOrders(): К ордеру Sell #1 не найден Lock-ордер. Необходимо его установить!
需要有经验的程序员的帮助!
大家好!
伙计们,我们需要你们的帮助!我正在写一个专家顾问。我不是特别擅长编程,所以我是自找的。我正在制作一个为市场订单设置锁定的检查功能。所有的订单都写在一个结构化的二维数组中。数组的第一个索引(单元)[0]是基本(市场)订单,第二个索引(单元)[1]是基本订单的锁。因此,该函数应该检查是否为一个基本订单设置了锁,如果是YES,我们什么都不做,继续工作。我已经写好了这个函数,但它的工作原理不知为何是错的。例如,如果一个市场买入订单被打开,而终端发出消息说这不是一个买入订单类型,而是卖出,因此应该为它设置一个锁。但在卖出订单中,一切工作都很正常。我无法理解任何事情。订单被正确地写入数组中。我已经做了相应的检查,一切都很完美。所有的担保标准都正确地显示在阵列中。请帮助我找到代码中的错误或以某种方式修改我的功能。我在此附上该功能。
bool CheckOrders() // Есть массив с базовыми ордерами, открытыми по рынку InfoOrderNew[0][200]
{ // Есть массив с лок ордерами, выставленными к базовым InfoOrderNew[1][200]
int TypeOrder;
string Type = "",
OrderComm = "";
bool OpenLockOrder = false; // Флаг на установку лок ордера
for(int i=OrdersTotal()-1;i>=0;i--) // Выполняем перебор по рыночн. и отлож. ордерам
{
if((OrderSelect(i,SELECT_BY_POS) == true) // Если есть следующ.
&& (OrderSymbol() == Symbol())) // .. и наша вал.пара
{
OrderComm = OrderComment(); // Выбираем соответствующий комментарий ордера
TypeOrder = OrderType(); // Выбираем соответствующий тип ордера
for(int n=0; n<=199; n++) // Выполняем прогон по массиву ордеров
{
if(StringFind(OrderComm,"BaseIndex #"+IntegerToString(n)+"_",0)>=0) // Ищем базовый ордер с индексом в комментарии, соответствующем номеру ячейки в массиве ордеров
{
if((TypeOrder == InfoOrderNew[0][n].TypeOrder) == OP_BUY) // Если находим и наш ордер в массиве является BUY
{
if(InfoOrderNew[1][n].TypeOrder == 1 || InfoOrderNew[1][n].TypeOrder == 5) // Проверяем, выставлен ли к нему лок ордер (SELL или SELLSTOP) в массиве лок ордеров
{
if(InfoOrderNew[1][n].TypeOrder == 1) Type = "Sell";
if(InfoOrderNew[1][n].TypeOrder == 5) Type = "SellStop";
if(Debug) Print("Функция CheckOrders(): К ордеру Buy #",InfoOrderNew[0][n].TicketOrder," найден Lock-ордер ",Type," #",InfoOrderNew[1][n].TicketOrder,".");
break; // Если лок выставлен, то выходим из функции
}
else // Если нет, то
{
if(Debug) Print("Функция CheckOrders(): К ордеру Buy #",InfoOrderNew[0][n].TicketOrder," не найден Lock-ордер. Необходимо его установить!");
OpenLockOrder = true; // Даем сигнал на установку лока
}
}
if((TypeOrder == InfoOrderNew[0][n].TypeOrder) == OP_SELL) // Если наш ордер в массиве является SELL
{
if(InfoOrderNew[1][n].TypeOrder == 0 || InfoOrderNew[1][n].TypeOrder == 4) // Проверяем, выставлен ли к нему лок ордер (BUY или BUYSTOP) в массиве лок ордеров
{
if(InfoOrderNew[1][n].TypeOrder == 0) Type = "Buy";
if(InfoOrderNew[1][n].TypeOrder == 4) Type = "BuyStop";
if(Debug) Print("Функция CheckOrders(): К ордеру Sell #",InfoOrderNew[0][n].TicketOrder," найден Lock-ордер ",Type," #",InfoOrderNew[1][n].TicketOrder,".");
break; // Если лок выставлен, то выходим из функции
}
else // Если нет, то
{
if(Debug) Print("Функция CheckOrders(): К ордеру Sell #",InfoOrderNew[0][n].TicketOrder," не найден Lock-ордер. Необходимо его установить!");
OpenLockOrder = true; // Даем сигнал на установку лока
}
}
}
}
}
}
return(OpenLockOrder); // Передаем нашей функции полученное значение
}
需要有经验的程序员的帮助!
大家好!
伙计们,我们需要你们的帮助!我正在写一个专家顾问。我不是特别擅长编程,所以我是自找的。我正在制作一个为市场订单设置锁定的检查功能。所有的订单都写在一个结构化的二维数组中。数组的第一个索引(单元)[0]是基本(市场)订单,第二个索引(单元)[1]是基本订单的锁。因此,该函数应该检查是否为一个基本订单设置了锁,如果是YES,我们什么都不做,继续工作。我已经写好了这个函数,但它的工作原理不知为何是错的。例如,如果一个市场买入订单被打开,而终端发出消息说这不是一个买入订单类型,而是卖出,因此应该为它设置一个锁。但在卖出订单中,一切工作都很正常。我无法理解任何事情。订单被正确地写入数组中。我已经做了相应的检查,一切都很完美。所有的担保标准都正确地显示在阵列中。请帮助我找到代码中的错误或以某种方式修改我的功能。我在此附上该功能。
bool CheckOrders() // Есть массив с базовыми ордерами, открытыми по рынку InfoOrderNew[0][200]
{ // Есть массив с лок ордерами, выставленными к базовым InfoOrderNew[1][200]
int TypeOrder;
string Type = "",
OrderComm = "";
bool OpenLockOrder = false; // Флаг на установку лок ордера
for(int i=OrdersTotal()-1;i>=0;i--) // Выполняем перебор по рыночн. и отлож. ордерам
{
if((OrderSelect(i,SELECT_BY_POS) == true) // Если есть следующ.
&& (OrderSymbol() == Symbol())) // .. и наша вал.пара
{
OrderComm = OrderComment(); // Выбираем соответствующий комментарий ордера
TypeOrder = OrderType(); // Выбираем соответствующий тип ордера
for(int n=0; n<=199; n++) // Выполняем прогон по массиву ордеров
{
if(StringFind(OrderComm,"BaseIndex #"+IntegerToString(n)+"_",0)>=0) // Ищем базовый ордер с индексом в комментарии, соответствующем номеру ячейки в массиве ордеров
{
if((TypeOrder == InfoOrderNew[0][n].TypeOrder) == OP_BUY) // Если находим и наш ордер в массиве является BUY
{
if(InfoOrderNew[1][n].TypeOrder == 1 || InfoOrderNew[1][n].TypeOrder == 5) // Проверяем, выставлен ли к нему лок ордер (SELL или SELLSTOP) в массиве лок ордеров
{
if(InfoOrderNew[1][n].TypeOrder == 1) Type = "Sell";
if(InfoOrderNew[1][n].TypeOrder == 5) Type = "SellStop";
if(Debug) Print("Функция CheckOrders(): К ордеру Buy #",InfoOrderNew[0][n].TicketOrder," найден Lock-ордер ",Type," #",InfoOrderNew[1][n].TicketOrder,".");
break; // Если лок выставлен, то выходим из функции
}
else // Если нет, то
{
if(Debug) Print("Функция CheckOrders(): К ордеру Buy #",InfoOrderNew[0][n].TicketOrder," не найден Lock-ордер. Необходимо его установить!");
OpenLockOrder = true; // Даем сигнал на установку лока
}
}
if((TypeOrder == InfoOrderNew[0][n].TypeOrder) == OP_SELL) // Если наш ордер в массиве является SELL
{
if(InfoOrderNew[1][n].TypeOrder == 0 || InfoOrderNew[1][n].TypeOrder == 4) // Проверяем, выставлен ли к нему лок ордер (BUY или BUYSTOP) в массиве лок ордеров
{
if(InfoOrderNew[1][n].TypeOrder == 0) Type = "Buy";
if(InfoOrderNew[1][n].TypeOrder == 4) Type = "BuyStop";
if(Debug) Print("Функция CheckOrders(): К ордеру Sell #",InfoOrderNew[0][n].TicketOrder," найден Lock-ордер ",Type," #",InfoOrderNew[1][n].TicketOrder,".");
break; // Если лок выставлен, то выходим из функции
}
else // Если нет, то
{
if(Debug) Print("Функция CheckOrders(): К ордеру Sell #",InfoOrderNew[0][n].TicketOrder," не найден Lock-ордер. Необходимо его установить!");
OpenLockOrder = true; // Даем сигнал на установку лока
}
}
}
}
}
}
return(OpenLockOrder); // Передаем нашей функции полученное значение
}
或者展示低价销售的日志。
或者给我看看未悬挂的日志。
我做到了。什么都没有改变。这里是事件日志条目。
2017.01.15 18:23:51.062 2017.01.03 04:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: open #1 buy 0.10 GBPUSD at 1.23020 ok
2017.01.15 18:23:51.062 2017.01.03 04:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция SendMarketOrder(): Ордер отправлен успешно! Характеристики ордера: Buy#1; Цена открытия: 0.0; Лот: 0.1; Стоплосс: 0.0; Тейкпрофит: 0.0.
2017.01.15 18:23:51.062 2017.01.03 04:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: В работе функция ModifyOrder()
2017.01.15 18:23:51.062 2017.01.03 04:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция ModifyOrder()
2017.01.15 18:23:51.062 2017.01.03 04:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция ModifyOrder(): Торговый поток свободен!
2017.01.15 18:23:51.062 2017.01.03 04:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: modify #1 buy 0.10 GBPUSD at 1.23020 sl: 1.18020 tp: 1.23520 ok
2017.01.15 18:23:51.062 2017.01.03 04:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция ModifyOrder(): Модификация ордера выполнена успешно!
2017.01.15 18:23:51.062 2017.01.03 04:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: В работе функция SetPendingOrder()
2017.01.15 18:23:51.062 2017.01.03 04:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция SetPendingOrder(): Выставленная цена SellStop ордера удовлетворяет условиям брокера.
2017.01.15 18:23:51.062 2017.01.03 04:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: open #2 sell stop 0.10 GBPUSD at 1.22020 ok
2017.01.15 18:23:51.062 2017.01.03 04:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция SetPendingOrder(): Отложенный ордер выставлен c 1-й попытки! Характеристики ордера: SellStop #2; Цена: 1.2202; Лот: 0.1.
2017.01.15 18:23:51.062 2017.01.03 04:15:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Отложенный SellStop ордер успешно установлен!
2017.01.15 18:23:51.109 2017.01.03 04:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Проверка заполнения массива Lock-ордерами. Ордер Тикет #2; Цена=1.2202; Тип=5; ячейка[0].
2017.01.15 18:23:51.109 2017.01.03 04:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Проверка заполнения массива обычными ордерами. Ордер Тикет #1; Цена=1.2302; Тип=0; ячейка[0].
2017.01.15 18:23:51.109 2017.01.03 04:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция OpenOrders(): Общее количество найденных ордеров = 2.
2017.01.15 18:23:51.109 2017.01.03 04:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция OpenOrders(): Общее количество рыночных ордеров = 1.
2017.01.15 18:23:51.109 2017.01.03 04:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция OpenOrders(): Общее количество Lock-ордеров = 1.
2017.01.15 18:23:51.109 2017.01.03 04:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция CheckOrders(): К ордеру Sell #1 не найден Lock-ордер. Необходимо его установить!
看看你在函数中填充InfoOrderNew[1][n].TypeOrder 数组 的地方。
2017.01.15 23:09:48.234 2017.01.03 09:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Проверка заполнения массива обычными ордерами. Ордер Тикет #3; Цена=1.2287; Тип ордера=Sell; ячейка[1].
2017.01.15 23:09:48.234 2017.01.03 09:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Проверка заполнения массива Lock-ордерами. Ордер Тикет #2; Цена=1.2202; Тип ордера=SellStop; ячейка[0].
2017.01.15 23:09:48.234 2017.01.03 09:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Проверка заполнения массива обычными ордерами. Ордер Тикет #1; Цена=1.2302; Тип ордера=Buy; ячейка[0].
2017.01.15 23:09:48.234 2017.01.03 09:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция OpenOrders(): Общее количество найденных ордеров = 4.
2017.01.15 23:09:48.234 2017.01.03 09:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция OpenOrders(): Общее количество рыночных ордеров = 2.
2017.01.15 23:09:48.234 2017.01.03 09:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция OpenOrders(): Общее количество Lock-ордеров = 2.
2017.01.15 23:09:48.234 2017.01.03 09:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция CheckOrders(): К ордеру Sell #3 найден Lock-ордер BuyStop #4.
2017.01.15 23:09:48.234 2017.01.03 09:30:00 Multi-Trade System ver.1.03 (SergeyOm) GBPUSD,M15: Функция CheckOrders(): К ордеру Sell #1 не найден Lock-ордер. Необходимо его установить!
感谢Vladislav Andruschenko 参与发现问题!我似乎已经解决了这个问题。我不得不重新修改了一下代码,所有的东西都一下子工作了。
没问题
我只是在周末摔了一跤。:-)把它整理好就好了。
没问题
我只是在周末摔了一跤。:-)这是很好的,它被整理了。
另一个问题出现了。
如何在结构化异质数组的任何单元中清零或删除信息?问题是,订单的注释 已经改变,我需要从一个结构化数组的单元格中删除这个订单,并在另一个数组中定义这个订单。用普通的数组,一切或多或少都很清楚,但我不确定哪些运算符或函数起作用,或如何处理这一切。而我如何将一个结构化数组复制到另一个结构化数组中,以保存前一个填充物的信息,然后与新的数组进行比较?请告知谁知道这个问题的情况。我将非常感激!
价格标签(OBJ_ARROW_LEFT_PRICE)能否有自己的文字,而不是价格,如果是这样,怎么做?