Автор: Николай Камынин

     Объясняю, как овладеть AutoIt, который распространяется бесплатно.  
 Более того,  писать для него скрипты очень просто, если Вы знакомы с компьютером в объеме школьных уроков информатики.
Итак идем на сайт производителя: http://www.autoitscript.com/autoit3/downloads.shtml
Забираем AutoIt v3.3.6.1 заодно рекомендую скачать текстовый редактор  AutoIt Editor (SciTE).
    Далее устанавливаете AutoIt и редактор на свой компьютер.
         В качестве примера, в редактор копируйте приведенный  В заметке Автоматизация запуска QUIK с помощью AutoIt текст.
     Его можно скопировать и в любой другой текстовый редактор.
Сохраняете текст в файл с раширением “au3”.
        После этого, в редакторе SciTE в меню TOOLS выполняете BUILD.
         Если Вы работаете в другом редакторе, то после сохранения файла заходите в каталог, где он лежит наводите мышку и жмете на правую кнопку.
                Появляется меню               Выбираете Compile Script.
        Получаете исполняемый файл с расширением exe.
Если Вы при установке AutoIt не указали привязку его к расширению au3, то компиляцию Вашей программы надо сделать вызвав Aut2Exe Делается это так:
Заходим : Пуск->Программы->AutoIt v3->Compile Script to .exe
Появляется окно:
В поле с именем “Source” с помощью кнопки “Browse” выбираем исходную программу с расширением .au3
Жмем кнопку “Convert” . Там же, где исходный файл получаем исполняемый с тем же именем но расширением .exe.

Tags: , , ,

Автор: Николай Камынин

Одной из проблем программирования на QPILE для QUIK является отсутствие встроенных функций чтения свечей по их порядковому номеру.
В QPILE есть лишь функция позволяющая прочитать свечу с указанным временем и датой.

Рассмотрим алгоритм определения номера считываемой свечи .

На основе этого алгоритма Вы можете  написать функцию чтения свечи по ее номеру.
Ранее я привел на сайте программу определения интервала графика, а также программы работы с датой и временем.

 На их основе можно написать требуемые вспомогательные функции и для данного алгоритма.

Алгоритм определения номера свечи следующий:
Пишите две функции для изменения времени и даты, см.ранее.
1. Берем в качестве начальных значений время и дату последней сделки
2. Устанавливаем счетчик свечей в ноль – это будет номер свечи последней сделки – самая крайняя свеча справа на графике
3. читаем свечу
4. извлекаем из свечи ее время и дату и запоминаем
5. уменьшаем время на величину интервала, если не знаем, то на 1 минуту,
если время меньше начала сессии , то уменьшаем дату , а время ставим на конец сессии
6. читаем очередную свечу
7. извлекаем ее время и дату
8.  сравниваем с параметрами свечи с пункта 4
Если параметры одинаковые, то переходим к пункту 5
9. иначе увеличиваем счетчик свечей на единицу, нашли очередную свечу , переходим к пункту 4
  и  продолжаем считать свечи

Tags: , , , ,

Автор : Николай Камынин

     Объясняю, как овладеть AutoIt, который распространяется бесплатно.  
 Более того,  писать для него скрипты очень просто, если Вы знакомы с компьютером в объеме школьных уроков информатики.
Итак идем на сайт производителя: http://www.autoitscript.com/autoit3/downloads.shtml
Забираем AutoIt v3.3.6.1 заодно рекомендую скачать текстовый редактор  AutoIt Editor (SciTE).
    Далее устанавливаете AutoIt и редактор на свой компьютер.
         В редактор копируйте приведенный ниже текст.
     Его можно скопировать и в любой другой текстовый редактор.
Сохраняете текст в файл с раширением “au3”.
        После этого, в редакторе SciTE в меню TOOLS выполняете BUILD.
         Если Вы работаете в другом редакторе, то после сохранения файла заходите в каталог, где он лежит наводите мышку и жмете на правую кнопку.
                Появляется меню               Выбираете Compile Script.
        Получаете исполняемый файл с расширением exe.

Если Вы при установке AutoIt не указали привязку его к расширению au3, то компиляцию Вашей программы надо сделать вызвав Aut2Exe Делается это так:

Заходим : Пуск->Программы->AutoIt v3->Compile Script to .exe

Появляется окно:

В поле с именем “Source” с помощью кнопки “Browse” выбираем исходную программу с расширением .au3

Жмем кнопку “Convert” . Там же, где исходный файл получаем исполняемый с тем же именем но расширением .exe.

        Этот файл Вы помещаете в автозапуск, если надо, чтобы  QUIK запускался в определенное время.
         Либо помещаете файл на стол и в период с 9:50 до 23:00 в рабочие дни, когда надо, щелкаете по файлу и QUIK запускается.
        Теперь о самом скрипте.
         Текст его приведен ниже. 
    Как он работает ясно из комментария.
       Продвинутые пользователи могут запускать скрипт командной строкой.
         Для менее продвинутых поясняю.
В редакторе текста перед трансляцией запишите свой ЛОГИН и ПАРОЛЬ в следующие строки программы:
$Name=»  123456 » ;логин
$Pas=» AAAAAAA » ;пароль

//~~~~~~ТЕКСТ СКРИПТА~~~~~~~~~~~~~~~~~~~~~

; AutoIt Version: 3.0
; Language: Русский
; Platform: Win9x/NT
; Author: Николай Камынин(kamnik@mail.ru)
; в качестве параматров можно задать
; формат запуска программы: RQ [«HH:MM:SS» [«логин» [«пароль» [«путь к файлу QUIK»]]]]
#include <Date.au3>
$Progr=»info.exe» ;имя файла с расширением QUIK
$DirW=»C:\Info\» ;путь к файлу QUIK
$wind=»Идентификация пользователя» ;название окна
$Name=»123456″ ;логин
$Pas=»AAAAAAA» ;пароль
$TimeStart=»9:50:00″ ;время запуска QUIK
$TimeStop=»23:00:00″ ;время окончания сессии
if $CmdLine[0] >0 then
$TimeStart=$CmdLine[1] ;время запуска QUIK
EndIf
if $CmdLine[0] >1 then
$Name=$CmdLine[2] ;логин
EndIf
if $CmdLine[0] >2 then
$Pas=$CmdLine[3] ;пароль
EndIf

if $CmdLine[0] >3 then
$DirW=$CmdLine[4] ;путь к файлу QUIK
EndIf
;~~~~~~~~~~~~~~~~~
$NowDate=_NowCalcDate() ;текущая дата
$DateToWeek=_DateToDayOfWeek ( StringMid( $NowDate,1,4), StringMid( $NowDate,6,2), StringMid( $NowDate,9,2))
$DiffToSecStop=_DateDiff(«s», _NowCalc(), $NowDate & » » & $TimeStop)
IF ( $DateToWeek>1 and 7>$DateToWeek and $DiffToSecStop>0 ) Then
$DiffToSecStrat=_DateDiff(«s», _NowCalc(), $NowDate & » » & $TimeStart)
Sleep($DiffToSecStrat*1000)
if ProcessExists ( $Progr)==0 then
Run($DirW & $Progr,$DirW)
WinWaitActive($wind)
if StringLen($Name)>0 then
Send($Name )
Send(«{TAB}»)
EndIf
if StringLen($Pas)>0 then
Send($Pas )
Send(«{ENTER}»)
EndIf
; Send( «{Shift}+{Ctrl}+L»); Начать вывод через DDE из всех таблиц, имеющих настройки экспорта

EndIf
EndIf

Tags: , , ,