Избранное трейдера _sg_
Доброго времени суток, ищу на аутсорс
— кусок кода на Java, в исходниках
— отрисовка графика цены в JFreeChart, OHLC bars
— red/green отрисовка баров (скорее всего наследование от оrg.jfree.chart.renderer.xy.HighLowRenderer), визуально близко к TWS IB
— cross-hair overlay, OHLC price snap, как это сделано в ThinkOrSwim
Почему именно JFreeChart? Пишу личного помошника в отборе акций, которые затем торгуются в TWS IB. Чтобы переход от помошника к терминалу был когнитивно легким, решил отрисовать той же библиотеко, что в терминале.
В принципе могу сам, но в целях экономии времени, могу аутсорснуть.
Начал работать, примерно, год назад, т.е. новичок. Пользуюсь Квиком. Торгую вручную в сроках от дней до месяцев и бесконечности. Т.е. не совсем смарт-лабовский формат, но, возможно, кому-нить пригодится. Личный опыт и вопросы. Итак.
1) Горячие клавиши!Сколько раз, в течение жизни, я мысленно благодарил одного из своих преподов в ВУЗе. Курс он читал какой-то незначащий, типа «Пакеты прикладных программ», что ли, но крепко-накрепко вдолбил в голову: работая в любой программе, первым делом, выучивай горячие клавиши!Это так сильно помогает, что странно, почему этому в школе не учат.
В Квике какие-то клавиши заданы, какие-то можно назначать, но, похоже, не все. Постоянно пользуюсь Ctrl+E (редактирование), Alt+G (график), Alt+I (информация об облигации), Ctrl+N (копия окна), Alt+T (показывать окно поверх других). Сильно не хватает клавиш для работы с шаблонами и вкладками. Например, переключаться между вкладками можно по Alt+1...Alt+9 можно, а между шаблонами нельзя. Загружать/удалять/переименовывать вкладки нельзя итд.
Вопрос: этих клавиш, действительно, нету и нельзя назначить или мне не по глазам?
Построен практический пример на акциях Apple (AAPL)slingshot [ˈslɪŋʃɒt] — (сущ.) рогатка
Книга Маркуса Чауна «Странные вопросы о Вселенной» — сборник его лучших выступлений о невероятных научных фактах.
Например, вы знаете, что на треть состоите из грибов? На одну треть у нас совпадают ДНК. Что у некоторых грибов по 13 полов! А потенциально грибы могут иметь 500 полов. И, собственно, никто не знает, почему у нас, как людей, два пола?
Ученые склоняются к мысли, что разделение людей по половому признаку призвано для того, чтобы защитить организмы от… паразитов. Суть в том, что наши дети получают случайным образом 50% генов от нас и супруга. Дети — зашифрованные копии родителей. Если бы гены не тасовались случайно, то паразит, поселившийся в одном организме, извел бы его и потомков, которые бы просто клонировались, в случае с одним полом. А так постоянное случайное разнообразие, к которому не могут адаптироваться паразиты. Называется эта идея «Гипотеза Чёрной Королевы», если вдруг захотите подробней узнать. Как вам теория? Марш Мендельсона, свадебные наряды… конкурсы в бутылочку и все это из-за паразитов.
Во первых – я человек творческий, несмотря на то что программист, и мне можно писать итоги года через месяц после НГ. Тебе – нет. ))
Во вторых – Нихрена не делал почти месяц. Опять же. Не отдыхал уже лет пять. Мне – можно…
В третьих – ЗОЖ – п…жь. Выпил ящик виски за прошлый месяц, два раза сорвал горло когда пел караоке. Порвал две струны на гитаре. Пробил две покрышки на машине.
Ну и в четвёртых + 78 % годовых по нашим ботам. Господи, спасибо! Могу себе позволить и первое и второе и третье ;)
--[[ MA volumn up down --]] Settings= { Name = "MAV2_m", -- indicator name per=10, -- period line= { { Name = "MA", Type =TYPE_LINE, Width = 1, Color = RGB(0,0,0) }, { Name = "MA2", Type =TYPE_LINE, Width = 1, Color = RGB(0,0,255) } } } function Init() mav1 = {} mav2 = {} return 2 end function OnCalculate(index) per = Settings.per if index > 1 then curv = C(index) prevv = C(index-1) else curv = C(index) prevv = C(index) end if curv - prevv > 0 then if index > 1 then mav1[index] = mav1[index-1] + V(index) mav2[index] = mav2[index-1] else mav1[index] = V(index) mav2[index] = 0 end else if index > 1 then mav1[index] = mav1[index-1] mav2[index] = mav2[index-1] + V(index) else mav1[index] = 0 mav2[index] = V(index) end end if index > per then vv1 = mav1[index] - mav1[index-per] vv2 = mav2[index] - mav2[index-per] else vv1 = 0 vv2 = 0 end return 0, vv1 - vv2 end