Блог им. Doopler

Кому нужно Pivot point для Quik

    • 13 января 2014, 19:25
    • |
    • Aero
  • Еще
И так вчера создавал тему по поводу пивотов, добавил еще по одному уровню расчета, убрал округление, добавил возможность расчета по недельным графикам
Вот собственно код 
PORTFOLIO_EX VFPivot;
DESCRIPTION VFPivot;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST ALL_FIRMS;
USE_CASE_SENSITIVE_CONSTANTS;
PROGRAM
cSrc=«Graph1»
cTrgt=«Graph2»
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=APPLY_SCALE(pValue,4)
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(«C», 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)
nR3=nH+2*(nDP-nL)
nS3=nL-2*(nH-nDP)
LogData(«R3»,MyRound(nR3))
LogData(«R2»,MyRound(nR2))
LogData(«R1»,MyRound(nR1))
LogData(«PP»,MyRound(nDP))
LogData(«S1»,MyRound(nS1))
LogData(«S2»,MyRound(nS2))
LogData(«S3»,MyRound(nS3))
iDay=2
else
iDay=1
end if
end for
LogData(«D», 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
 
И так настройка
Копируем этот код в текстовый файл, обзываем его Pivotday.qpl 
засовываем в папку с квиком. Далее
cSrc=«Graph1»
cTrgt=«Graph2»

Параметр Gaph1 это тот график откуда мы будем брать информацию о свечке
Параметр Graph2  тот график где будет обозначаться соответственный ценовой уровень поддержки или сопротивления.
Далее куда эти параметры запихивать, жмем на график откуда мы будем брать информацию правой кнопкой>параметры графика> price> вкладка Дополнительно, строка Индетификатор в это окошко вводим параметр Graph1 анологично с графиком на котором мы будем рисовать эти самые ценовые уровни. Для расчета уровней по недельным графикам
в строке for
iDay from 1 to 2
Date=Date-1 нужно вместо Date-1 поставить Date-5
Что бы использовать два скрипта одновременно необходимо в первой строчке
PORTFOLIO_EX VFPivot;  поменять VFPivot, допустим на VFPivot1 или VFPivotweek так же рекомендую поменять праметры Graph1 и Graph2 просто другие циферки можете написать или вообще слово от балды, главное в идентификатор написать такое же слово как и в скрипте 
Если возникли вопросы обращайтесь в личку помогу настроить интрфейс в квике что бы оптимизировать работу этого скрипта. 
Так же нужно нажать в меню Таблица> Портфели>задать портфель, выбираем наш файлик, далее снова Таблица> Портфели>Простомтр портфеля

Так же благодарю Dachnik и skatino за помощь  
Тут оригинал данной примочки>
http://freeman.li/stati/programnoe-obespechenie/rasshirenija-dlja-quik/novyi-indikator-dlja-quik-urovni-pivot.html 

P.S если числа из таблиц пропадают или не расчитывает, тыкаем правой кнопки мышки  на табличку «Начать расчет заного»
★29
17 комментариев
Спасибо +
avatar
про файлик с картинкой забыли сказать
avatar
Кстати стандартаная болезнь, кавычки при вставки поменялись на руские, так возможно не пойдет.
LogData(«R3»,MyRound(nR3)) поменять на """" english ))
avatar
Dachnik, слушай есть проблема с расчетом недельной свечи, он расчитывает текущюю свечу, приду домой посмотрю в чем проблема, не мог бы тоже посмотреть из за чего такое может быть?
avatar
Так я понял в чем проблема, дело в том что скрипт расчитывает при параметре Date=Date-1 отсчитывает сутки неазад от серверного времени, для того что бы был расчет по недельным графикам нужно написать Date=Date-5
avatar
не получиться просто 5 свечек назад? не вникал особо в код, но есть проверка на выходные и праздничные? Иначе уровни не верны будут(
avatar
Date=Date-68 Это какая дата?
avatar
Dachnik, смотри, он отсчитывает от серверного времени пять дней назад, а по скольку там 1 недельная свечка с праздниками там особо парилово нет, ну мб посмотрим, вообще неудобный скррипт этот, про 68 посмотрел вроде ни как не влияет, но трошать не стал)может это просто общий диапозон свечей.
avatar
Андрей Ерохин, просто если написать -2 по окончании недели будет сформирована свеча и в понедельник и вторник все будез збс потому что 2 дня назад как бы еще прошлая недельная свеча, а вот в среду он уже будет расчитывать текущую недльную свечку
avatar
Добрый день.
С прошедшими праздниками!
загрузил скрипт, все в таблице расчитывается, но проблема:
не отрисовываются уровни на графике D1 (в оригинале отрисовывается).

Не подскажите в чём проблема?
avatar
oktb, вывод уровней происзводиться на другой график почитайте описание внимательнее
avatar
Извините, написал не правильно.
уровни не выводятся на график с меньшем чем d1 ТФ.
Т.о. графически уровни вообще не вижу, хотя таблица считается.

P.S.загружен D1 и 10мин.
avatar
Все спасибо.
Запоказывало -)
avatar
не нашел где там скачать, подскажите кто скачивал
avatar
Спасибо добрый человек!
Взял из Вашего скрипта функцию округления до 4го знака после запятой. А то в QPILE не рублю, а камариллу переделать нужно было.
avatar
Никак не настрою. Помоги. Как написать в личку? С уважением, Александр.

теги блога Aero

....все тэги



UPDONW
Новый дизайн