Украинская биржа
Индекс UX Фьючерсный контракт на Индекс украинских акций  ПоискПоиск  ПравилаПравила  ПользователиПользователи  ПрофильПрофиль  РегистрацияРегистрация  ВходВход
Форум «Алгоритмическая торговля»
Форум для обсуждения тем по разработке механических торговых систем и написанию роботов на фондовом и срочном рынках.
Помогите!!!
Модераторы: Алексей Сухоруков, Комиссаров Евгений
Новая тема   Ответить на тему
 Предыдущая тема :: Следующая тема 
 Автор  Сообщение 
bonzamen
Стаж: 4 года 11 месяцев
Сообщений: 2
Пн Июн 24, 2013 19:19 Ответить с цитатой Получить постоянный адрес сообщения
Есть скрипт для формирования портфеля OHLC для передачи данных по каждой свече в Эксель . Никак не могу понять с контрактами RIU3 работает нормально,а SiU3 при формировании портфеля -пустая таблица.Я не программист ,но такое ощущение ,что при работе скрипта он переводит инструмент SiU3 в SIU3 , а так как такого инструмента нет он ничего и не передает.Пробовал много разных контрактов, но не работает именно там где в названии инструмента второй буквой идет маленькая " i ". Подскажите пожалуйста как с этим бороться.Код прилагаю ниже...


PORTFOLIO_EX OHLC;
DESCRIPTION OHLC;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST ALL_FIRMS;

PROGRAM
' Настраиваемые параметры


INSTRUMENT = "SiU3" ' ЗАДАЕМ ИНСТРУМЕНТ
ClassCodeList="SPBFUT" ' код класса инструмента
Interval=30 ' интервал (таймфрейм) на графике
DayToFind=1 ' сколько дней назад искать свечи (можно уменьшить, чтоы ускорить работу программы)
CandleToFind=1 ' сколько свечей надо найти
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) ' округляем минуты до "интервальных"
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
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)
ADD_ITEM(CandleCount,output)
WRITELN(OutFile, TextData & "," & TextTime & "," & Open & "," & High & "," & Low & "," & Close &"," & Volume )
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 ("Не найдены котировки до рождества Христова! <img src="http://www.trade-bot.ru/wp-includes/images/smilies/icon_biggrin.gif" alt=":-D" class="wp-smiley"> ",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,2);
END

PARAMETER High;
PARAMETER_TITLE High;
PARAMETER_DESCRIPTION High;
PARAMETER_TYPE NUMERIC(10,2);
END

PARAMETER Low;
PARAMETER_TITLE Low;
PARAMETER_DESCRIPTION Low;
PARAMETER_TYPE NUMERIC(10,2);
END

PARAMETER Close;
PARAMETER_TITLE Close;
PARAMETER_DESCRIPTION Close;
PARAMETER_TYPE NUMERIC(10,2);
END

PARAMETER Volume;
PARAMETER_TITLE Volume;
PARAMETER_DESCRIPTION Volume;
PARAMETER_TYPE NUMERIC(10,2);
END
END_PORTFOLIO_EX
 
 
bonzamen
Стаж: 4 года 11 месяцев
Сообщений: 2
Пн Июн 24, 2013 21:48 (спустя 2 часа 28 минут) Ответить с цитатой Получить постоянный адрес сообщения
Все разобрался сам применил функцию,чтобы регистр у литеры не менялся USE_CASE_SENSITIVE_CONSTANTS 
 
Показать сообщения:   
Новая тема   Ответить на тему
Список форумов Украинской биржи -> Алгоритмическая торговля
Сайт Украинской биржи | Версия для мобильных устройств — m.ux.ua
Copyright © Украинская биржа, 2018.
Предложения, замечания и вопросы по работе форума направляйте на email:
Rambler's Top100