Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Т.е. скрипт фактически от советника ниче не отличается. Может также работать долгое время, открывать и закрывать ордера?
Скрипт по определению выполняется один раз. Открывать/закрывать ордера он может только единожды, во время запуска. Вам, как я понимаю, может потребоваться довольно длительная работа программы по осуществлению торговой стратегии. И только при возникновении определённых условий работа программы должна быть прекращена. Думается, что это должен быть всё-таки эксперт.
Посмотрите, пожалуйста, вышепреведённый код. Он как раз реализует остановку по условию. И вновь запускается либо при удалении графика и повторном присоединении эксперта, либо при удалении самого эксперта с последующим присоединением вновь.
Задать глобальную переменную, проинициализировать ее например true. В начале функции start проверять ее на истинность, иначе return нах. После выполнения "определенного" условия присвоить ей false. Примерно так.
У варианта с глобальной переменной есть недостаток.
При повторной загрузке метатрейдера например по причине перезагрузки компьютера, советник инициализируется по новой.
Т.е. нужна переменная, которая сохраняет значение даже при перезагрузке компьютера.
У варианта с глобальной переменной есть недостаток.
При повторной загрузке метатрейдера например по причине перезагрузки компьютера, советник инициализируется по новой.
Т.е. нужна переменная, которая сохраняет значение даже при перезагрузке компьютера.
Остается запись/чтение переменной в файл. Но скрипт для таких целей не вариант.
Все это несложно, думаю если на заказ не более 10-15$. Желающие найдутся.
У варианта с глобальной переменной есть недостаток.
При повторной загрузке метатрейдера например по причине перезагрузки компьютера, советник инициализируется по новой.
Т.е. нужна переменная, которая сохраняет значение даже при перезагрузке компьютера.
Выше я привёл пример кода. Там используеся глобальная переменная клиентского терминала. Она ни в коем случае не теряется при перезагрузке.
Она ни в коем случае не теряется при перезагрузке.
"Никогда не говори никогда". Как-то спотыкался... В файл надежнее ИМХО.
У варианта с глобальной переменной есть недостаток.
При повторной загрузке метатрейдера например по причине перезагрузки компьютера, советник инициализируется по новой.
Т.е. нужна переменная, которая сохраняет значение даже при перезагрузке компьютера.
Такая идея:
Записывать значение переменной в файл. При загрузке терминала, советник обращается к файлу и считывает значение переменной.
А для запуска советника, чтобы он снова работал - два варианта:
1) Перед новым включением советника вручную удалить прежний файл, советник создаст его по новой с записью текущего значения переменной.
2) В параметрах советника сделать флаг. И при новом включении советника менять в параметрах значение флага на новое (если до этого был параметр TRUE, меняем на FALSE и наоборот). В файле помимо значения переменной, пишем параметр флага. И если при новом включении флаг не совпадает - советник запускается, файл обнуляется и записываются текущие значения флага и переменной. Если флаг совпадает - файл не обнуляется, советник считывает прошлую запись из файла.
"Никогда не говори никогда". Как-то спотыкался... В файл надежнее ИМХО.
Переменные GlobalVariables
В клиентском терминале может работать несколько прикладных программ одновременно. В ряде случаев возникает необходимость передать какие-то сведения из одной программы в другую. Специально для этого в языке MQL4 созданы глобальные переменные клиентского терминала.
Глобальная переменная клиентского терминала - переменная, значение которой доступно из всех прикладных программ, запущенных на клиентском терминале (сокращённо - GV-переменная).
Свойства GV-переменных
В отличие от других переменных, GV-переменная может быть не только создана из любой программы, но и удалена. Значение GV-переменной сохраняется на жёстком диске компьютера и после закрытия клиентского терминала. Однажды объявленная GV-переменная существует в клиентском терминале в течение 4 недель с момента последнего обращения. Если в течение указанного срока ни одна из программ не обращалась к GV-переменной, то она удаляется клиентским терминалом. GV-переменная может иметь только тип double.
....
Спасибо конечно). Знаю я это все. Вот только после одного случая предпочитаю обходиться без этих GV. С файлом понятнее и прозрачнее, хотя согласен архаично, но как по мне надежнее, знаешь когда значение сохранено, результат операции сохрания можно проконтролировать, знаешь что и через X недель оно не исчезнет, переменную можно перенести вместе с экспертом и т.д. Каждому свое, а может просто я уже програмирование больше 10 лет назад изучал, старый стал, как экскременты мамонта и методы использую соответствующие:)
Спасибо конечно). Знаю я это все. Вот только после одного случая предпочитаю обходиться без этих GV. С файлом понятнее и прозрачнее, хотя согласен архаично, но как по мне надежнее, знаешь когда значение сохранено, результат операции сохрания можно проконтролировать, знаешь что и через X недель оно не исчезнет, переменную можно перенести вместе с экспертом и т.д. Каждому свое, а может просто я уже програмирование больше 10 лет назад изучал, старый стал, как экскременты мамонта и методы использую соответствующие:)
:)
Сам пользуюсь файлами.... Но когда нескольким экспертам надо мгновенно передать новое значение параметра, лучше глобальной переменной не найти...
int start()
{
OrderSend("GBPUSD",OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
return;
}
можете объяснить почему этот советник не торгует?