Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 68
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Он и так безразмерный, но двухмерный, и в два измерения можете положить безразмерное количество элементов.
Что вы вообще вытворяете, вы имеете хоть представление, какой должен быть результат от выполненной вами работы? Или вы на ходу выдумываете логику?
в текущем примере я хочу иметь возможность положить туда бесконечное количество ордеров с любыми лотами чтобы не было выхода за его пределы
конечно границы мы знаем и все в курсе, но хочу именно так
исхожу из того что если указать в скобках элемент то он будет последним
вот у меня получилась вот такая хрень. Ожидалось вид орде по по порядку... лот? чтоб в ордерсенд вместо лота я добавил результат (лот такого-то ордера*коэффициент)
и вопрос извлечения данных оттуда
хочу получить так как я себе представляю
MyArray[0][0.01]
MyArray[1][0.01]
MyArray[2][0.02]
и т д...
void CalcOrders()
{
int CountOrders=0;
double MyArray [99][99];
for(i=OrdersTotal()-1; i>=0; i--)
{
if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
&& (OrderMagicNumber()==Magic) && (OrderType()==OP_SELL))
CountOrders++;
ArrayResize(MyArray,CountOrders+1);
MyArray[CountOrders][0]=OrderLots();
Print("MyArray[CountOrders][0]",MyArray[CountOrders][0]);
}
}
2017.01.13 12:51:14.372 2017.01.05 16:30:00 martin GBPUSD,M5: MyArray[CountOrders][0]0.02
2017.01.13 12:51:14.372 2017.01.05 16:25:00 martin GBPUSD,M5: MyArray[CountOrders][0]0.01
2017.01.13 12:51:14.372 2017.01.05 16:25:00 martin GBPUSD,M5: MyArray[CountOrders][0]0.02
2017.01.13 12:51:14.371 2017.01.05 16:20:00 martin GBPUSD,M5: MyArray[CountOrders][0]0.01
2017.01.13 12:51:14.371 2017.01.05 16:20:00 martin GBPUSD,M5: MyArray[CountOrders][0]0.02
2017.01.13 12:51:14.371 2017.01.05 16:15:00 martin GBPUSD,M5: MyArray[CountOrders][0]0.01
в текущем примере я хочу иметь возможность положить туда бесконечное количество ордеров с любыми лотами чтобы не было выхода за его пределы
конечно границы мы знаем и все в курсе, но хочу именно так
исхожу из того что если указать в скобках элемент то он будет последним
вот у меня получилась вот такая хрень. Ожидалось вид орде по по порядку... лот? чтоб в ордерсенд вместо лота я добавил результат (лот такого-то ордера*коэффициент)
и вопрос извлечения данных оттуда
void CalcOrders()
{
int CountOrders=0;
double MyArray [99][99];
for(i=OrdersTotal()-1; i>=0; i--)
{
if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
&& (OrderMagicNumber()==Magic) && (OrderType()==OP_SELL))
CountOrders++;
ArrayResize(MyArray,CountOrders+1);
MyArray[CountOrders][0]=OrderLots();
Print("MyArray[CountOrders][0]",MyArray[CountOrders][0]);
}
}
2017.01.13 12:51:14.372 2017.01.05 16:30:00 martin GBPUSD,M5: MyArray[CountOrders][0]0.02
2017.01.13 12:51:14.372 2017.01.05 16:25:00 martin GBPUSD,M5: MyArray[CountOrders][0]0.01
2017.01.13 12:51:14.372 2017.01.05 16:25:00 martin GBPUSD,M5: MyArray[CountOrders][0]0.02
2017.01.13 12:51:14.371 2017.01.05 16:20:00 martin GBPUSD,M5: MyArray[CountOrders][0]0.01
2017.01.13 12:51:14.371 2017.01.05 16:20:00 martin GBPUSD,M5: MyArray[CountOrders][0]0.02
2017.01.13 12:51:14.371 2017.01.05 16:15:00 martin GBPUSD,M5: MyArray[CountOrders][0]0.01
Поясни, пожалуйста что тебе нужно?
ну запихаем все в массив, дальше что?
Массив будем крутить, искать в нем нужную тебе позицию, что?
Лот какой позиции, есть определения, или на глазок, посмотрел вкладку Торговля , ага нужен 6, так?Поясни, пожалуйста что тебе нужно?
ну запихаем все в массив, дальше что?
Массив будем крутить, искать в нем нужную тебе позицию, что?
Лот какой позиции, есть определения, или на глазок, посмотрел вкладку Торговля , ага нужен 6, так?ОнТик()
если условие открытия позиций верное
{открываем позицию}
если позиция открыта правильно
{доливаем столько же }
Если последний лот это позиция 2 - доливаем лот *1.5 (через функцию найти последний получаем второй) а это третий
если это будет четвертый ордер
доливаем {лот нулевой+лот первой}
если это будет пятый ордер
доливаем {лот 1 позиции +лот третьей}
В текущий момент есть определения последней позиции в списке
надо чтоб записхать в массив и вытащить сразу нужную, потому что другой способ реализации я в текущий момент не вижу, поэтому количество ордеров и позиций должно быть теоретически бесконечным
Вот я показал что сделал в функцию, правильно или нет не знаю.
поэтому надо как то вытащить данные и уже заранее знать какой по счету буду открывать ордер
как бы не претендую на то что система вообще рабочая, важна сама реализация
Доброго времени. Подскажите, если необходимо протестировать советник, а он использует команды для записи и чтения бит и csv файла, как известно возникают ошибки в режиме тест на использование операций с файлами.
Ни каких ошибок не возникает. Только пишется в другую папку если не используется флаг
FILE_COMMON
4096
Расположение файла в общей папке всех клиентских терминалов \Terminal\Common\Files. Флаг используется при открытии файлов (FileOpen()), копировании файлов (FileCopy(), FileMove()) и проверке существования файлов (FileIsExist())
Ни каких ошибок не возникает. Только пишется в другую папку если не используется флаг
FILE_COMMON
4096
Расположение файла в общей папке всех клиентских терминалов \Terminal\Common\Files. Флаг используется при открытии файлов (FileOpen()), копировании файлов (FileCopy(), FileMove()) и проверке существования файлов (FileIsExist())
Ну у меня Флаг используется FileOpen()
input string InpDirectoryName="";
string path=InpDirectoryName+"//"+InpFileName;
C:\Users\Rassvet\AppData\Roaming\MetaQuotes\Terminal\36A64B8C79A6163D85E6173B54096685\MQL5\Files
5004:ERR_FILE_CANNOT_OPEN = Ошибка открытия файла
Ну у меня Флаг используется FileOpen()
input string InpDirectoryName="";
string path=InpDirectoryName+"//"+InpFileName;
C:\Users\Rassvet\AppData\Roaming\MetaQuotes\Terminal\36A64B8C79A6163D85E6173B54096685\MQL5\Files
5004:ERR_FILE_CANNOT_OPEN = Ошибка открытия файла
FileOpen() это не флаг... Флаг - FILE_COMMON
Если ты хочешь писать не в отдельную папку, то и в пути её указывать не обязательно как пустую строку. Необязательное выделено жёлтым.
FileOpen() это не флаг... Флаг - FILE_COMMON
Если ты хочешь писать не в отдельную папку, то и в пути её указывать не обязательно как пустую строку. Необязательное выделено жёлтым.
Подскажите пожалуйста, где можно почитать про свойство #property strict ?
Здравствуйте!
Подскажите пожалуйста, где можно почитать про свойство #property strict ?