Андрей Куклинский
Андрей Куклинский личный блог
11 мая 2015, 16:56

Не работает скрипт (((

скрипт на кпайле. берет данные с графика по заданному инструменту  в квике и выводит в таблицу OHCL V .

на RIM5  и mix все нормально а на SiM5 ну  нифига и все.((( 

подскажите в чем может быть дело, если кто понимает в этом...

вот сам скрипт:

PORTFOLIO_EX SI;
DESCRIPTION SI;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST ALL_FIRMS;

PROGRAM


' Настраиваемые параметры
ClassCodeList=«SPBFUT» ' код класса инструмента
Instrument=«SiM5» ' название инструмента
Interval=15 ' интервал (таймфрейм) на графике
DayToFind=14 ' сколько дней назад искать свечи (можно уменьшить, чтобы ускорить работу программы)
CandleToFind=550' сколько свечей надо найти


OutFile = «c:\quotes.csv» ' файл, куда записывать данные в формате CSV
DELETE_ALL_ITEMS()
CandleCount=0
CurYear=get_value(GET_DATETIME(), «YEAR»)
CurMonth=get_value(GET_DATETIME(), «MONTH»)
CurDay=get_value(GET_DATETIME(), «DAY»)
CurHour = GET_VALUE(GET_DATETIME(), «Hour»)
CurMin = GET_VALUE(GET_DATETIME(), «Min»)
CurMin = Interval*Floor(CurMin/Interval) ' округляем минуты до «интервальных»

ID=«ID1» 'идентификатор графика

for i from 1 to (DayToFind*24)*(Floor(60/Interval))
TextData=fTextData(CurYear,CurMonth,CurDay) &""
TextTime=fTextTime(CurHour,CurMin) & ""
if (CandleCount<CandleToFind) ' если нашли сколько нам надо свечей — гоняем пустой цикл
Candle=GET_CANDLE(ClassCodeList,Instrument, "", Interval & "", «PRICE», TextData, TextTime)
Open=GET_VALUE (Candle, «Open»)+0
if (Open>0)
CandleCount=CandleCount+1
High=GET_VALUE (Candle, «High»)+0
Low=GET_VALUE (Candle, «Low»)+0
Close=GET_VALUE (Candle, «Close»)+0
Volume=GET_VALUE (Candle, «Volume»)+0

o1=0+GET_VALUE(GET_VALUE(GET_CANDLE_EX(ID,TextData,TextTime),«LINES»),«OPEN»)
h1=0+GET_VALUE(GET_VALUE(GET_CANDLE_EX(ID,TextData,TextTime),«LINES»),«HIGH»)
l1=0+GET_VALUE(GET_VALUE(GET_CANDLE_EX(ID,TextData,TextTime),«LINES»),«LOW»)
c1=0+GET_VALUE(GET_VALUE(GET_CANDLE_EX(ID,TextData,TextTime),«LINES»),«CLOSE»)
v1=0+GET_VALUE(GET_VALUE(GET_CANDLE_EX(ID,TextData,TextTime),«LINES»),«VOLUME»)

output=CREATE_MAP()
output=SET_VALUE(output,«Date»,TextData)
output=SET_VALUE(output,«Time»,TextTime)
'output=SET_VALUE(output,«Open»,Open)
'output=SET_VALUE(output,«High»,High)
'output=SET_VALUE(output,«Low»,Low)
'output=SET_VALUE(output,«Close»,Close)
'output=SET_VALUE(output,«Volume»,Volume)
output=SET_VALUE(output,«Open»,o1)
output=SET_VALUE(output,«High»,h1)
output=SET_VALUE(output,«Low»,l1)
output=SET_VALUE(output,«Close»,c1)
output=SET_VALUE(output,«Volume»,v1)
ADD_ITEM(CandleCount,output)
WRITELN(OutFile, TextData & "," & TextTime & "," & Open & "," & High & "," & Low & "," & Close)
end if
' откат на «интервал» назад
CurMin=CurMin-Interval
if CurMin<0
CurMin=60+CurMin
CurHour=CurHour-1
if CurHour<0
CurHour=23
CurDay=CurDay-1
if curDay<1
CurDay=31
CurMonth=CurMonth-1
if CurMonth<1
CurMonth=12
CurYear=CurYear-1
if CurYear<0
 message («Не найдены котировки до рождества Христова! »,1)
end if
end if
end if
end if
end if
end if
end for

' функция перевода даты в текстовый формат
func fTextData(Year,Month,Day)
if (LEN(Month) < 2)
Month = «0» & Month
end if
if (LEN(Day) < 2)
Day = «0» & Day
end if
result = Year & Month & Day
end func

' функция перевода времени в текстовый формат
func fTextTime(Hour,Min,Sec)
if (LEN(Hour) < 2)
Hour = «0» & Hour
end if
if (LEN(Min) < 2)
Min = «0» & Min
end if
result = Hour & Min & «00»
end func

END_PROGRAM

PARAMETER Date;
PARAMETER_TITLE Дата;
PARAMETER_DESCRIPTION Дата;
PARAMETER_TYPE STRING(30);
END
PARAMETER Time;
PARAMETER_TITLE Время;
PARAMETER_DESCRIPTION Время;
PARAMETER_TYPE STRING(30);
END
PARAMETER Open;
PARAMETER_TITLE Open;
PARAMETER_DESCRIPTION Open;
PARAMETER_TYPE NUMERIC(10,0);
END
PARAMETER High;
PARAMETER_TITLE High;
PARAMETER_DESCRIPTION High;
PARAMETER_TYPE NUMERIC(10,0);
END
PARAMETER Low;
PARAMETER_TITLE Low;
PARAMETER_DESCRIPTION Low;
PARAMETER_TYPE NUMERIC(10,0);
END
PARAMETER Close;
PARAMETER_TITLE Close;
PARAMETER_DESCRIPTION Close;
PARAMETER_TYPE NUMERIC(10,0);
END
PARAMETER Volume;
PARAMETER_TITLE Volume;
PARAMETER_DESCRIPTION Volume;
PARAMETER_TYPE NUMERIC(10,0);
END
END_PORTFOLIO_EX

9 Комментариев
  • Hedgehog
    11 мая 2015, 17:01
    Может стоит добавить
    USE_CASE_SENSITIVE_CONSTANTS;
  • Dachnik
    11 мая 2015, 17:21
    Разница в символах RIM все в верхнем регистре, Si второй символ в нижнем, первый коммент товарища USE_CASE_SENSITIVE_CONSTANTS; был верный)
  • Egorax
    11 мая 2015, 17:32
    Qpile умер!!!
  • comrade
    12 мая 2015, 17:37
    Есть LUA скрип «Котировки с сервера брокера» вывод данных по инструментам в csv файл: www.bot4sale.ru/download-categories/2012-06-13-15-10-36/item/kotirovki-s-servera-brokera.html?category_id=70 что гораздо удобнее формировать котировки в реальном времени в csv файл, удобные настройки через файл ini, выбор данных, таймфрейма и т.д.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн