![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Это всего лишь горстка строк в mql4 (конечно, вам нужны DLL, разрешенные для вызова API windows, но вам не нужно ничего устанавливать):
У меня этот скрипт в избранном, и когда мне нужны тики, я просто перетаскиваю его на график.
У меня также есть вариант этого скрипта без цикла, который посылает только один тик, а затем выходит, и я привязал его (one_tick.mq4) к горячей клавише ALT+T, и теперь я могу посылать тик на активный график, просто нажав ALT-T. Мне это нужно для некоторых моих советников stat-arb, когда я экспериментирую в выходные, чтобы заставить start() запускать их вычисления и построение графиков (я могу перемещать линии на графике, чтобы изменить интервал, а затем мне нужен новый тик, чтобы обновить их вычисления).
7 Я никогда не использовал импорт dll, поэтому не могли бы вы объяснить следующее.
+ Нужно ли включать файлы dll в папку Meta Trader Client?
+ Как мы можем включить этот советник из клиента MT?
Приведите, пожалуйста, примеры импорта DLL в Meta Trader.
7 Я никогда не использовал импорт dll, поэтому не могли бы вы объяснить следующее.
+ Нужно ли включать файлы dll в папку Meta Trader Client?
+ Как мы можем включить этот советник из клиента MT?
Приведите, пожалуйста, примеры импорта DLL в Meta Trader.
Мне очень жаль сообщать вам, что вы не сможете извлечь из этого никакой пользы (или даже понять, для каких целей это можно использовать), пока не научитесь читать текст длиннее 140 символов.
Для начала вы могли бы попытаться извлечь смысл из текста, который вы только что процитировали в своем последнем сообщении. Вы обнаружите, что я описал его как скрипт, а не как советник, более того, к вашему большому удивлению, вы обнаружите, что я написал, что нет необходимости устанавливать какие-либо dll, и вы даже сможете найти те части текста, где я объяснил, как его следует использовать.
Мне жаль сообщать вам, что вы совершенно не сможете использовать его (или даже понять, для какой цели он может быть использован), пока не научитесь читать текст длиннее 140 символов.
Для начала вы могли бы попытаться извлечь смысл из текста, который вы только что процитировали в своем последнем сообщении. Вы обнаружите, что я описал его как скрипт, а не как советник, более того, к вашему большому удивлению, вы обнаружите, что я написал, что нет необходимости устанавливать какие-либо dll, и вы даже сможете найти те части текста, где я объяснил, как его следует использовать.
Я восхищаюсь вашим высокомерием, вашим знанием английского языка и, возможно, вашим примером кодирования.
Но решение проблемы без предоставления решения - это просто уход от вопроса.
7 bit вместо того, чтобы подвергать сомнению мои способности и технику чтения, почему бы вам не написать всю программу и не доказать свою правоту. вместо того, чтобы философствовать!
Вы знаете, как сделать часы реального времени секунда за секундой или нет? вот в чем вопрос? эти часы должны быть на графике?
вы можете просто сложить 2 и 2.
Используйте код 7bit для генерации фальшивых тиков в сочетании с кодом, который я разместил, и у вас есть все, что вам нужно.
И кстати, 7bit кажется одним из лучших программистов, которые участвуют в этом форуме...
//z
spidermagos:
Я восхищаюсь вашим высокомерием
Спасибо.
spidermagos:
почему бы вам не написать всю программу и не доказать свою правоту. вместо того, чтобы философствовать!
Скрипт завершен и работает автономно, точно в рамках спецификаций, которые я дал.
Я разместил его как предложение для решения проблемы, связанной с тем, что индикаторы не могут использовать блокирующие вызовы типа sleep(), а также с тем, что не существует другого способа генерировать события таймера из самого индикатора. Именно эта подпроблема всей проблемы с таймером была упомянута непосредственно перед этим в этой теме, и только она и ничто другое было мной рассмотрено. Ее можно рассматривать как совершенно самостоятельную проблему, и мой скрипт является общим (и совершенно независимым) решением для нее и может быть применен во многих подобных сценариях, и я даже привел пример для другого случая использования.
Если вы хотите писать код, вы должны научиться декомпозиции задачи, а также уметь сразу распознавать решение и частичное решение, когда бы вы на него ни наткнулись.
//< This is EA : Compile and run in folder "/experts" > int start() { static int iClockPeriod = 1000 ; static int iTimeStamp ; static int iRunTime ; while ( ! IsStopped () ) { iTimeStamp = GetTickCount () ; Comment ( TimeToStr ( TimeLocal () , TIME_SECONDS ) ) ; iRunTime = GetTickCount () - iTimeStamp ; Sleep ( iClockPeriod - iRunTime ) ; } } //</This is EA : Compile and run in folder "/experts" >
//< This is Indicator : Compile and run in folder "/experts/indicators" > #property indicator_chart_window int start() { static int iClockPeriod = 1000 ; static int iTimeStamp ; if ( ( GetTickCount () - iTimeStamp ) < iClockPeriod ) return ; { iTimeStamp = GetTickCount () ; Comment ( TimeToStr ( TimeLocal () , TIME_SECONDS ) ) ; } } //</This is Indicator : Compile and run in folder "/experts/indicators" >
Запустите эти программы в разных графиках.
Запустите эти программы на разных графиках.
Ais ; 7bit прав, это не будет работать! функция запуска - тик за тиком
Для решения этой проблемы необходим импорт dll. ...
т.е. вызов скриптов из индикаторов
Спасибо.
Скрипт завершен и работает автономно, точно в рамках спецификаций, которые я дал.
Я разместил его как предложение для решения проблемы, связанной с тем, что индикаторы не могут использовать блокирующие вызовы типа sleep(), а также с тем, что не существует другого способа генерировать события таймера из самого индикатора. Именно эта подпроблема всей проблемы с таймером была упомянута непосредственно перед этим в этой теме, и только она и ничто другое было мной рассмотрено. Ее можно рассматривать как совершенно самостоятельную проблему, и мой скрипт является общим (и совершенно независимым) решением для нее и может быть применен во многих подобных сценариях, и я даже привел пример для другого случая использования.
Если вы хотите писать код, вы должны овладеть навыком декомпозиции проблемы, а также уметь сразу распознавать решение и частичное решение, когда бы вы на него ни наткнулись.
7bit - как можно вызвать скрипт из индикатора?
Можете ли вы привести пример?
Насколько я понимаю, функция Start() работает тик за тиком.
Есть ли способ использовать данные из компьютерных часов в реальном времени и обновлять их каждую секунду? Не тик за тиком, а каждую секунду?
Если да, пожалуйста, помогите мне.
спасибо
Сначала поместите логику, которую вы имеете в start, в функцию.
Затем сделайте цикл while в init() с sleep и вызовите функцию оттуда. Помните, что sleep - это миллисекунды.
Это позволит вам контролировать время, а не ждать изменения цены.
Это прекрасно работает при условии, что логика вашей программы в порядке. Единственная проблема заключается в том, что вы не можете запустить его в бэктестере. Сначала проведите тестирование с помощью Start(), а затем переключите его на init().