XXM: блог

rss

по

Блоги: личный (72) | открытые (14) | корпоративные (0) | все (86)

Как совместить удаленную работу на бирже и весь день пробыть на даче

    • 05 июня 2020, 08:03
    • |
    • XXM
  • Еще

и при этом преуспеть и там и там?

       Вчера у меня это получилось:

скриншот: торговый день 04.06.2020
       Сранья внес очередные правки в Lbot3D в связи с изменение версии Lua c 5.1 до 5.3. по результатам ночных прогонов на демо-QUIK, запустил на боевом счету на удаленном сервере и поехал на весь день за город. День был солнечный, приятный. Вечером результат работы программы тоже порадовал: стратегия MMA0, которая была в шортах с 03.06.2020, стала раздавать лимитированные заявки на покупку-продажу, причем некоторые сделки из них просто прекрасны: продажи на локальных «хаях», покупки на локальных «лоях».
       Также примечательна работа стратегии MMB0: лонг от 01.06.2020 не смог реализоваться в плюс (не дошла цена до 2859.1 :(( «ну не шмогла» ) Но и стопа тоже пока нет! Тем не менее, есть повод проработать ее параметры, но это не скоро, пусть проработает еще месяц-другой.



( Читать дальше )

Последний визит.

    • 07 ноября 2019, 10:39
    • |
    • XXM
  • Еще
Речь про дату и время последнего визита на smart-lab.ru :)
Глянул сегодня smart-lab.ru/profile/xxm/
вижу такую картинку:

Последний визит.

т.е. заходил на smart-lab 1 мая 2019 года. 
Но после этой даты у меня выходили и посты (22 августа 2019) и комментарии (03 сентября 2019). Несоответствие, однако. Понимаю, это не критично, но это и не совсем правильно. Вношу предложение поправить дату и время последнего визита в соответствии с действительными входами на сайт.

Camarilla Equation. Индикатор для QUIK. Часть 3.

    • 22 августа 2019, 12:29
    • |
    • XXM
  • Еще
Получил такое сообщение:

привет!
у меня в квике стояла камарилла аж с 2014 года, когда вы выложили здесь этот индикатор.
квик обновился до 8 и камарилла пропала.
это не исправить?

Глянул по тэгу https://smart-lab.ru/tag/Camarilla/ и вот они:
1. Camarilla Equation. Индикатор для QUIK.
2. Camarilla Equation. Индикатор для QUIK. Часть 2.

Выкладываю вариант, не зависящий от обновлений QUIK.

-- Camarilla.lua
Settings={
	Name = "Camarilla",
	period = 'D',
	line =
		{
			{Name = "S5", Color = RGB(255, 0, 0), Type = 1, Width = 2},
			{Name = "S4", Color = RGB(255, 165, 0), Type = 1, Width = 2},
			{Name = "S3", Color = RGB(255, 255, 0), Type = 1, Width = 2},
			{Name = "PP", Color = RGB(0, 255, 0), Type = 1, Width = 2},
			{Name = "R3", Color = RGB(0, 191, 255), Type = 1, Width = 2},
			{Name = "R4", Color = RGB(0, 0, 255), Type = 1, Width = 2},
			{Name = "R5", Color = RGB(139, 0, 255), Type = 1, Width = 2},
		}
}

local math_floor = math.floor
local levels = 0
local ydH, ydL, ydC, ydO = {},{},{},{}
local PP, R3, R4, R5 = 0,0,0,0
local S3, S4, S5 = 0,0,0
	local delta = 0
	local cl = 0
local predThisDay=0
local function dTs(t) return 100*(100*t.year+t.month)+t.day; end
local OldDay = ''	-- для выделения начала торгового дня

function Init ()
	local t=getDataSourceInfo()
	local tt = t.interval
	if tt == -3 then 
		message('Месячный график не обрабатывается.',1)
		return 
	end
	return 7
end

function OnCalculate (index)
	local time tt=T(index); ---время из свечи
	--local ThisDay=dTs(tt)	-- дата в формате yyyyMMdd
	local tDay=dTs(tt)	-- дата в формате yyyyMMdd
	local ThisDay = tDay
	if Settings.period == 'W' then
		ThisDay=tt.week_day	-- номер недели
	end
	if index == 1 then
		--message('First ThisDay = '..tostring(ThisDay),1)
		local t=getDataSourceInfo()
		--7.2.5 Функция предназначена для получения информации об источнике данных для индикатора.
		local scale = getSecurityInfo(t.class_code, t.sec_code).scale	--	NUMBER, Количество значащих цифр после запятой
		mul = 10^scale  -- возведение в степень
		local tt = t.interval
		if tt == -3 then tt = 'месяц' 
		elseif tt == -2 then tt = 'неделя'
		elseif tt == -1 then tt = 'день' 
		else
			tt = tt..' мин.'
		end
		--message(t.sec_code..'('..t.class_code..'), цифр после запятой: '..scale..', mul = '..mul..', дата = '..ThisDay,1)
		levels = levels + 1
		if ThisDay ~= OldDay then
			OldDay = ThisDay
		end	
		predThisDay = ThisDay
		--
		delta = H(index) - L(index)
		cl = C(index)
		R5 = (H(index) / L(index))*cl
		calcLevels(index)
		local per = 'daily'
		if Settings.period == 'W' then
			per = 'weekly'
		end
		message('Camarilla '..per..', Т = '..tt..', © xsharp.ru 20.06.2015', 1)
		return
	end
	if Settings.period == 'W' then
		if ThisDay < OldDay then	-- для неделек
			OldDay = OldDay + 1
			if OldDay ~= ThisDay then
				OldDay = ThisDay
			end
			levels = levels + 1
			delta = ydH[levels-1] - ydL[levels-1]
			cl = ydC[levels-1]
			R5 = (ydH[levels-1] / ydL[levels-1])*cl
			calcLevels(index)
			--if index<120 then
			--message('index= '..tostring(index)..', Смена недели: '..tostring(ThisDay)..', OldDay: '..tostring(OldDay)..', d='..tDay..', R3= '..R3..', PP= '..cl..', S3= '..S3,1)
			--end
			predThisDay = ThisDay
		else
			if ThisDay ~=predThisDay then
				--message('index= '..tostring(index)..', ThisDay= '..tostring(ThisDay)..', predThisDay: '..tostring(predThisDay)..', d='..tDay..', R3= '..R3..', PP= '..cl..', S3= '..S3,1)
				predThisDay = ThisDay
				OldDay = OldDay + 1
			end
			ThisDayF(index)
		end
	elseif Settings.period == 'D' then
		if ThisDay ~= OldDay then	-- для дневок
			OldDay = OldDay + 1
			if OldDay ~= ThisDay then
				OldDay = ThisDay
			end
			levels = levels + 1
			delta = ydH[levels-1] - ydL[levels-1]
			cl = ydC[levels-1]
			R5 = (ydH[levels-1] / ydL[levels-1])*cl
			calcLevels(index)
			--if index<120 then
			--message('index= '..tostring(index)..', Смена недели: '..tostring(ThisDay)..', OldDay: '..tostring(OldDay)..', d='..tDay..', R3= '..R3..', PP= '..cl..', S3= '..S3,1)
			--end
			predThisDay = ThisDay
		else
			if ThisDay ~=predThisDay then
				--message('index= '..tostring(index)..', ThisDay= '..tostring(ThisDay)..', predThisDay: '..tostring(predThisDay)..', d='..tDay..', R3= '..R3..', PP= '..cl..', S3= '..S3,1)
				predThisDay = ThisDay
				OldDay = OldDay + 1
			end
			ThisDayF(index)
		end
	elseif Settings.period == 'H4' then
		if ThisDay ~= OldDay then	-- для дневок
			OldDay = OldDay + 1
			if OldDay ~= ThisDay then
				OldDay = ThisDay
			end
			levels = levels + 1
			delta = ydH[levels-1] - ydL[levels-1]
			cl = ydC[levels-1]
			R5 = (ydH[levels-1] / ydL[levels-1])*cl
			calcLevels(index)
			--if index<120 then
			--message('index= '..tostring(index)..', Смена недели: '..tostring(ThisDay)..', OldDay: '..tostring(OldDay)..', d='..tDay..', R3= '..R3..', PP= '..cl..', S3= '..S3,1)
			--end
			predThisDay = ThisDay
		else
			if ThisDay ~=predThisDay then
				--message('index= '..tostring(index)..', ThisDay= '..tostring(ThisDay)..', predThisDay: '..tostring(predThisDay)..', d='..tDay..', R3= '..R3..', PP= '..cl..', S3= '..S3,1)
				predThisDay = ThisDay
				OldDay = OldDay + 1
			end
			ThisDayF(index)
		end
	end
	return S5, S4, S3, cl, R3, R4, R5
end

function round(value)
	return math_floor(value*mul + 0.5) / mul
end

function ThisDayF(index)
	ydC[levels] = C(index)
	if H(index) > ydH[levels] then
		ydH[levels] = H(index)
	end
	if L(index) < ydL[levels] then
		ydL[levels] = L(index)
	end
end

function calcLevels(index)
	ydO[levels] = O(index)
	ydH[levels] = H(index)
	ydL[levels] = L(index)
	ydC[levels] = C(index)
	--
	R3 = cl + delta * 1.1/4
	R4 = cl + delta * 1.1/2
	--
	S3 = cl - delta * 1.1/4
	S4 = cl - delta * 1.1/2
	S5 = cl - (R5-cl)
	--
	R5 = round(R5)
	R4 = round(R4)
	R3 = round(R3)
	S3 = round(S3)
	S4 = round(S4)
	S5 = round(S5)
end
  • обсудить на форуме:
  • QUIK

QUIK версии 8.0

    • 14 июня 2019, 21:22
    • |
    • XXM
  • Еще
Ура, что ли?

Доводим до вашего сведения, что в начале июля 2019 года компания ARQA Technologies планирует выпустить Рабочее место QUIK версии 8.0, поддерживающее только 64-разрядные ОС Windows. В связи с этим, уведомляем вас о следующем:
— Версии РМ QUIK для 32-разрядных ОС Windows выпускаться более не будут. Текущие версии (x32 6.x, 7.x) будут продолжать работать и смогут подключаться к новым версиям сервера QUIK, но обновлений для этих версий не будет.
— Прекращается поддержка операционной системы Window XP.
Если вы используюте Window XP или x32-релизы других ОС Windows — рекомендуем обновить системы в случае, если вы заинтересованы получать обновления РМ QUIK.


Письмо получил. Может разыгрывают меня? А я вас?
  • обсудить на форуме:
  • QUIK

Как я тестирую этим летом.

    • 10 июня 2019, 13:19
    • |
    • XXM
  • Еще

Поиск прибыльных торговых правил — тема многогранная. Сейчас расскажу про свой сегодняшний подход к формированию портфеля стратегий для одного инструмента на примере индекса Московской биржи.

Сперва картинка:

Грааль от 2011 года.
Ей много лет. Хранится в компьютере под именем graal_001.JPG, дата создания — 14.05.2011.

Когда-то и робота делал в VBA Excel, и Downloader (https://smart-lab.ru/blog/488966.php) и, конечно же, тестера. Последний и выдал мне тогда этот Equity, от которого мне стало как-то не по себе, что я закрыл компьютер и пару дней вообще старался не думать про этот график. Потом вернулся к программе и стал уже чуть ли не через лупу изучать стратегию. Обнаружил ошибку заглядывания вперед (look-ahead bias), выдохнул и успокоился :) Файл сохранил в назидание: если увидел ровную Equity, ищи ощибку и найди ее!

Увы, похвастаться ровным нарастающим графиком пока не могу. Хотя есть простые, но неровно растущие графики. Иногда получается даже выпрямить их в некоторой степени. Ниже — рассказ про свой метод.



( Читать дальше )

Путь домой.

    • 04 июня 2019, 16:49
    • |
    • XXM
  • Еще

Заголовок «Эмулятор биржевой торговли LbotLight.» уже был (https://smart-lab.ru/blog/293681.php), сегодня будет просто «Путь домой».



( Читать дальше )

QUIK версии 7.27.2.1: Can't create connection disconnecting thread.

    • 03 июня 2019, 19:02
    • |
    • XXM
  • Еще
Вот такого никогда ранее на моем рабочем компьютере еще не встречал:
QUIK версии 7.27.2.1: Can't create connection disconnecting thread.
Программу, типа, отключать не моги! QUIK атакуе!

И еще, на закуску, чтобы мало не казалось:
QUIK версии 7.27.2.1: Can't create connection disconnecting thread.

( Читать дальше )
  • обсудить на форуме:
  • QUIK

Нейроны не покажут направление цены.

    • 02 апреля 2019, 13:37
    • |
    • XXM
  • Еще

Фразу «Я могу с точностью до секунды предсказать движение планет, но не могу понять, что будет делать на бирже толпа этих безумцев через пять минут» Ньютону стали приписывать годы спустя после его смерти, так что при жизни он мог ее сказать, а мог и не сказать.
С тех пор предсказателей сменились поколенья, но до сих пор никто не знает, где будет цена завтра :(

Зато у нас есть компьютеры, нейронные сети!

Нейроны не покажут направление цены.

Может, нейроны покажут направление цены?
Нет! Если в задачах распознавания образов они показывают выдающиеся результаты, в прогнозировании движения биржевых цен никакого продвижения как не было, так и нет.
Попыток было много. Было дело, сам баловался. Увидев результат прогнозов 50:50, фактически «пальцем в небо», закрыл вопрос.
Но кого это остановит? Примеры:

1. smart-lab.ru/blog/359147.php (страница удалена, скриншот ниже)

Нейроны не покажут направление цены.

2.



( Читать дальше )

Торговый робот на Lua для QUIK.

    • 27 декабря 2018, 09:39
    • |
    • XXM
  • Еще

4 года и 4 месяца прошло с выхода поста «Торговый робот на LUA для QUIK» (https://smart-lab.ru/blog/200767.php) про конструктор Lbot. За это время он повзрослел, лишился графического интерфейса и… превратился в младшего брата для Lbot3D. И если раньше для Lbot была пробная версия (с одним инструментом и одним лотом), то теперь, фактически, сам превратился в пробную версию для Lbot3D и, с этого дня, предоставляется в свободное пользование с полным функционалом:

Торговый робот на Lua для QUIK.

Скачать Lbot180.zip можно тут: drive.google.com/open?id=1DL9jGEBm2Uhk89PcQdlK-ObaOe2zihnx
INI-файл написан для демо-QUIK на 3 инструмента — Сбербанк, Газпром и Лукойл. Стратегия на Газпроме — безиндикаторная, на Сбербанке — на скользящих средних, на Лукойле — на пересечениях MACD.

encoding = "UTF-8"
FREQUENCY = 1000
account = NL0011100043, 10110
PositionSize = 300000
xy = 421, 0, 859, 118
;-------------------------------------------------------------------------------
[GAZP]
Security = GAZP, QJSIM, Gazp_moex
WorkSize = 3		//  рабочий объем, в штуках;
LossLimit = 100		// ограничение на убыток по стратегии
OpenSlippage = 10	// допустимое проскальзывание на сделке, в количестве минимальных шагов цены;
OpenLong =  {Close, 1} < {High, 2}	// цена 'close' предыдущей 'полной' свечи превысила 'high' предшествующего ей бара;
OpenShort = {Close, 1} > {Low, 5-2}	// цена 'close' предыдущей 'полной' свечи принизила 'low' 5-2 баров;
StopLoss = 2
TakeProfit = 3, 1, 1
EOD = 18:29:00	//закрытия позиции в указанное время.
autoBot = Y
[SBER]
Security = SBER, QJSIM, Sber_moex
WorkSize = 10
LossLimit = 100
OpenSlippage = 10
OpenLong	= {Ema1} > {Ema2}
CloseLong	= {Ema1} < {Ema2}
OpenShort	= {Ema1} < {Ema2}
CloseShort	= {Ema1} > {Ema2}
autoBot = Y
[LKOH]
WorkSize = 2
Security = LKOH, QJSIM, Lkoh_moex
LossLimit = 225
OpenSlippage = 10
OpenLong	= cross(macd_Lkoh.0, macd_Lkoh.1)
OpenShort	= cross(macd_Lkoh.1, macd_Lkoh.0)
;OpenLong =  {Close, 1} < {Low, 5-2}
;OpenShort = {Close, 1} > {High, 2}
StopLoss = 30
TakeProfit = 50, 10, 10
autoBot = Y


( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

теги блога XXM

....все тэги



2010-2020
UPDONW