<HELP> for explanation

Блог им. Doopler

Для тех кто знает язык Qpile

Ребята, есть небольшая просьба, имеется исходник файла для расчета уровней Pivot Point. Только расчет он производит по целым числам, цифер после запятой нет, поэтому не представляется возможным расчет цен с числами после запятой такие как евро\доллар втб и т.д
Прикладываю исходник
PORTFOLIO_EX VFPivot;
DESCRIPTION VFPivot;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST ALL_FIRMS;
USE_CASE_SENSITIVE_CONSTANTS;
PROGRAM
cSrc=«GR_RTS24»
cTrgt=«GR_RTS60»
FUNC Text2Date(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 LogData(Prm1,Prm2)
output = CREATE_MAP ()
output = SET_VALUE (output, «Param0», GET_INFO_PARAM(«SERVERTIME»))
output = SET_VALUE (output, «Param1», Prm1)
output = SET_VALUE (output, «Param2», Prm2)
ADD_ITEM (CurLogLine, output)
CurLogLine=CurLogLine+1
End Func
FUNC MyRound(pValue)
result=floor(pValue)
label_params=create_map()
label_params=set_value(label_params,«TEXT», result)
label_params=set_value(label_params,«IMAGE_PATH», «line.bmp»)
label_params=set_value(label_params,«ALIGNMENT», «RIGHT»)
label_params=set_value(label_params,«YVALUE», result)
label_params=set_value(label_params,«DATE», Date)
label_params=set_value(label_params,«TIME», 0)
label_params=set_value(label_params,«R», 24)
label_params=set_value(label_params,«G», 107)
label_params=set_value(label_params,«B», 139)
label_params=set_value(label_params,«TRANSPARENCY», 0)
label_params=set_value(label_params,«FONT_FACE_NAME», «Tahoma»)
label_params=set_value(label_params,«FONT_HEIGHT», 14)
label_params=set_value(label_params,«HINT», result)
id=ADD_LABEL(cTrgt, label_params)
end func

DELETE_ALL_ITEMS()
DELETE_ALL_LABELS(cTrgt)
CurLogLine=1
Year = "" & (0 + get_value(GET_DATETIME(), «YEAR»))
Month = "" & (0 + get_value(GET_DATETIME(), «MONTH»))
Day = "" & (0 + get_value(GET_DATETIME(), «DAY»))
Date = Text2Date(Year,Month,Day) & ""
LogData(«B», GET_INFO_PARAM(«SERVERTIME»))
for iDay from 1 to 2
Date=Date-1
if substr(Date & "",6,2)=«00»
Date=Date-68
end if
dCandles = Get_Candle_Ex (cSrc, Date, 0)
if dCandles<>""
dCandle=Get_Value (dCandles,«LINES»)
nO=Get_Value (dCandle,«OPEN»)+0
nH=Get_Value (dCandle,«HIGH»)+0
nL=Get_Value (dCandle,«LOW»)+0
nC=Get_Value (dCandle,«CLOSE»)+0
nDP=(nH+nL+nC)/3
nR1=2*nDP-nL
nS1=2*nDP-nH
nR2=nDP+(nR1-nS1)
nS2=nDP-(nR1-nS1)
LogData(«DP»,MyRound(nDP))
LogData(«R1»,MyRound(nR1))
LogData(«R2»,MyRound(nR2))
LogData(«S1»,MyRound(nS1))
LogData(«S2»,MyRound(nS2))
iDay=2
else
iDay=1
end if
end for
LogData(«E», GET_INFO_PARAM(«SERVERTIME»))

END_PROGRAM
PARAMETER Param1;
PARAMETER_TITLE Уровень;
PARAMETER_DESCRIPTION Уровень;
PARAMETER_TYPE STRING (200);
END
PARAMETER Param2;
PARAMETER_TITLE Знач;
PARAMETER_DESCRIPTION Знач;
PARAMETER_TYPE STRING (200);
END
END_PORTFOLIO_EX
 
Кстати  PARAMETER_TYPE NUMERIC(8,4); менял сам, но после запятой вместо чисел, нули.
Как его модифицировать?
правда есть другой исходник Пивотов, но он настраивается исключительно для каждого инструмента, что очень неудобно, если интерестно могу и его приложить.
 

учи С#, там таких проблем не возникает
avatar

SHCHUTUSHCHA

SHCHUTUSHCHA, ради одного калькулятора, с простейшей формулой расчета, учить C#, не)
avatar

Aero

Андрей Ерохин, С# он не сложный. любой язык программирования реально выучить максимум за неделю
SHCHUTUSHCHA, сам выучил?
skatino, да я знаю C#
SHCHUTUSHCHA, что бы написать простейший калькулятор для детского сада, может и хватит недели и то с гайдами)
avatar

Aero

Андрей Ерохин, чтобы напрогать калькулятор нужно максимум пару часов но никак не неделя
SHCHUTUSHCHA, ответ сколь простой, столь же, в данном случае, и совершенно бессмысленный.
floor округляет… попробуй убрать… но там логику дальше смотреть надо, а то мало ли.

сча времени мало, могу завтра посмотреть… если забуду в личку напомни
avatar

skatino

skatino, да похоже что округляет, но если убрать этот параметр, то число в таблице не будет отображаться.
Если смотреть по графику, то он вроде бы как счиает, а в таблице не показывает числа после запятой. Заранее спасибо
avatar

Aero

попробуй поменять floor(pValue)на функцию APPLY_SCALE(pValue,2)
avatar

Dachnik

Dachnik, еще можно floor(pValue*100)/100
skatino, смысл один и тот же… результат тоже. разница небольшая. если не помогает, будем смотреть дальше
Dachnik, Спасибо)все помогло)Кстати есть небольшая проблема с отображением уровней пивота, там должны быть числа но они отображаются не там где нужно, вот скрин cs14101.vk.me/c613422/v613422980/751b/lXCZ6tpi_s0.jpg
может знаешь в чем дело?
avatar

Aero

SET_LABEL_PARAMS возможно надо
Тут пример как в табличку вывести
www.freeman.li/stati/programnoe-obespechenie/rasshirenija-dlja-quik/novyi-indikator-dlja-quik-urovni-pivot.html
avatar

Dachnik

Dachnik, ну смотри, уровни то отображаются, но отображаются не там где надо. У меня все сделано по гайду, добавил еще пару уровней в расчет только, на форуме почитал, на старых версиях квиках все отображалось хорошо, а тут…
avatar

Aero

Это же метка Возможно из за параметра ALIGNMENT Расположение картинки относительно текста (возможно 4 варианта: LEFT, RIGHT, TOP, BOTTOM
avatar

Dachnik

Dachnik, я понимаю, у меня есть другой скрипт пивота, там подобный способ вывода на график, только уровни там пишуться не напротив их числовой шкалы измерения цены эмитента, а просто в правом уголке, вверху, но меня это не интерисует, интерисует как тут www.freeman.li/images/pivot2.png
avatar

Aero

Dachnik, Я нашел в чем проблема, у меня была привязка RSI к левой стороне графика, почему то скрипт кстати брал числовые значения графика именно с левой стороны, как исправить не знаешь?
avatar

Aero

Загрузил скрипт из ссылки выше в quik, привязал к моему существующему графику и у меня тоже не строилось пока я не создал новый график. Что то кривовато в quik с выводом меток. Я особо то в эту тему не вникаю)
avatar

Dachnik


Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Залогиниться

Зарегистрироваться
....все тэги
Регистрация
UP