Передавайте советнику задание через файл. Обычный текстовый, который правится вручную после ручного графического анализа. По мере выяснения каждого из пяти заданий оно добавляется в этот файл. Строки выглядят так:
15:05 buy EURGBP 1
15:35 sell AUDUSD 1.3
16:10 sell GBPJPY 0.85
И есть еще одна строка, завершающая:
finish
Пока строки "finish" в файле нет, советник не реагирует на содержимое файла, его можно спокойно править. Вручную, или, позже, как-то автоматически.
Советник читает этот файл на каждом тике. Первый раз просто проверяет наличие финишной строки. Нет ее - ничего не делает. Есть - запоминает имеющиеся в файле задания в своих переменных. Удобнее запоминать в массиве структур:
struct TOrd { // Одно заданиеdatetime TimeOrd; // Момент актуализации задания
string BuySel;
string SymbOrd;
float OrdLots;
int : IsDone; // 0, если еще не исполнено. Иначе 1
};
TOrd Ords[4]; // Массив заданий
Заполнив Ords, советник затирает файл с заданиями. Это сигнал Вам о том, что все задания из файла приняты к исполнению.
До исполнения всех заданий из Ords советник работает так:
- не читает новые файлы заданий;
- на каждом тике новое время сравнивает с моментами актуализации из Ords, и для еще неисполненных заданий с прошедшим моментом актуализации пытается их исполнить. Например, для исполнения k-го задания вызывая OrderSend с параметрами из Ords[k]: инструмент Ords[k].SymbOrd, объем Ords[k].OrdLots, направление сделки и курс, TP, SL - исходя из Ords[k].BuySel. При успешном исполнении проставляет Ords[k].IdDone=1 и проверяет - может быть, уже все задания исполнены.
Когда все задания из Ords исполнены, советник начинает проверять на диске появление нового файла с заданиями и наличие в нем строки "finish". Вроде все.
Передавайте советнику задание через файл. Обычный текстовый, который правится вручную после ручного графического анализа. По мере выяснения каждого из пяти заданий оно добавляется в этот файл. Строки выглядят так:
15:05 buy EURGBP 1
15:35 sell AUDUSD 1.3
16:10 sell GBPJPY 0.85
И есть еще одна строка, завершающая:
finish
Пока строки "finish" в файле нет, советник не реагирует на содержимое файла, его можно спокойно править. Вручную, или, позже, как-то автоматически.
Советник читает этот файл на каждом тике. Первый раз просто проверяет наличие финишной строки. Нет ее - ничего не делает. Есть - запоминает имеющиеся в файле задания в своих переменных. Удобнее запоминать в массиве структур:
Заполнив Ords, советник затирает файл с заданиями. Это сигнал Вам о том, что все задания из файла приняты к исполнению.
До исполнения всех заданий из Ords советник работает так:
- не читает новые файлы заданий;
- на каждом тике новое время сравнивает с моментами актуализации из Ords, и для еще неисполненных заданий с прошедшим моментом актуализации пытается их исполнить. Например, для исполнения k-го задания вызывая OrderSend с параметрами из Ords[k]: инструмент Ords[k].SymbOrd, объем Ords[k].OrdLots, направление сделки и курс, TP, SL - исходя из Ords[k].BuySel. При успешном исполнении проставляет Ords[k].IdDone=1 и проверяет - может быть, уже все задания исполнены.
Когда все задания из Ords исполнены, советник начинает проверять на диске появление нового файла с заданиями и наличие в нем строки "finish". Вроде все.
спасибо, я не ІТ но походу доведенься им стать, не совсем понял смысл, но буду разбирать покрупинках - это вроде то что мне нужно ... примерно
с даных цен, расчёты,
Передавайте советнику задание через файл. Обычный текстовый, который правится вручную после ручного графического анализа. По мере выяснения каждого из пяти заданий оно добавляется в этот файл. Строки выглядят так:
15:05 buy EURGBP 1
15:35 sell AUDUSD 1.3
16:10 sell GBPJPY 0.85
И есть еще одна строка, завершающая:
finish
Пока строки "finish" в файле нет, советник не реагирует на содержимое файла, его можно спокойно править. Вручную, или, позже, как-то автоматически.
Советник читает этот файл на каждом тике. Первый раз просто проверяет наличие финишной строки. Нет ее - ничего не делает. Есть - запоминает имеющиеся в файле задания в своих переменных. Удобнее запоминать в массиве структур:
Заполнив Ords, советник затирает файл с заданиями. Это сигнал Вам о том, что все задания из файла приняты к исполнению.
До исполнения всех заданий из Ords советник работает так:
- не читает новые файлы заданий;
- на каждом тике новое время сравнивает с моментами актуализации из Ords, и для еще неисполненных заданий с прошедшим моментом актуализации пытается их исполнить. Например, для исполнения k-го задания вызывая OrderSend с параметрами из Ords[k]: инструмент Ords[k].SymbOrd, объем Ords[k].OrdLots, направление сделки и курс, TP, SL - исходя из Ords[k].BuySel. При успешном исполнении проставляет Ords[k].IdDone=1 и проверяет - может быть, уже все задания исполнены.
Когда все задания из Ords исполнены, советник начинает проверять на диске появление нового файла с заданиями и наличие в нем строки "finish". Вроде все.
Передавайте советнику задание через файл. Обычный текстовый, который правится вручную после ручного графического анализа. По мере выяснения каждого из пяти заданий оно добавляется в этот файл. Строки выглядят так:
15:05 buy EURGBP 1
15:35 sell AUDUSD 1.3
16:10 sell GBPJPY 0.85
И есть еще одна строка, завершающая:
finish
Пока строки "finish" в файле нет, советник не реагирует на содержимое файла, его можно спокойно править. Вручную, или, позже, как-то автоматически.
Советник читает этот файл на каждом тике. Первый раз просто проверяет наличие финишной строки. Нет ее - ничего не делает. Есть - запоминает имеющиеся в файле задания в своих переменных. Удобнее запоминать в массиве структур:
Заполнив Ords, советник затирает файл с заданиями. Это сигнал Вам о том, что все задания из файла приняты к исполнению.
До исполнения всех заданий из Ords советник работает так:
- не читает новые файлы заданий;
- на каждом тике новое время сравнивает с моментами актуализации из Ords, и для еще неисполненных заданий с прошедшим моментом актуализации пытается их исполнить. Например, для исполнения k-го задания вызывая OrderSend с параметрами из Ords[k]: инструмент Ords[k].SymbOrd, объем Ords[k].OrdLots, направление сделки и курс, TP, SL - исходя из Ords[k].BuySel. При успешном исполнении проставляет Ords[k].IdDone=1 и проверяет - может быть, уже все задания исполнены.
Когда все задания из Ords исполнены, советник начинает проверять на диске появление нового файла с заданиями и наличие в нем строки "finish". Вроде все.