Избранное трейдера AKC33

по

Библиотека С++ для загрузки экономических новостей

Есть один хороший сайт www.investing.com с экономическими новостями, которым пользуются многие трейдеры на Форексе. И решил я как-то раз попробовать посмотреть, что будет на бэктестинге торговли по новостям. Поковырявшись в страничке экономического календаря сделал в итоге С++ библиотеку для загрузки новостей. Для http запросов библиотека использует curl. Новости загружаются по UTC времени, загрузить их можно со времен начала эпохи UNIX

Класс для хранения одной новости:
/** \brief Класс Новостей
*/
class News
{
public:
	std::string name;          /**< Имя новости */
	std::string currency;      /**< Валюта новости */
	std::string country;       /**< Страна новости */
	int level_volatility = -1; /**< Уровень волатильности (-1 не инициализировано,  низкий уровень = 0, средний 1, высокий 2) */
	double previous;           /**< Предыдущее значение */
	double actual;             /**< Актуальное значение */
	double forecast;           /**< Предсказанное значение */
	bool is_previous = false;  /**< Наличие предыдущего значения */
	bool is_actual = false;    /**< Наличие актуального значения */
	bool is_forecast = false;  /**< Наличие предсказанного значения */
	uint64_t timestamp = 0;    /**< Метка времени новости */

	News() {};
};
Для хранения массива исторических данных новостей используется библиотека 

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

АлгоТрейдинг на кубиках - визуальный редактор TsLab 2.0

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

АлгоТрейдинг на кубиках -  визуальный редактор TsLab 2.0



Данное Программное обеспечение универсальное и называется TsLab. Его можно использовать как на акциях, фьючерсных, торгуемых на Мос.Бирже, а так же и на криптовалютных парах.  СКАЧАТЬ 

Основные преимущества сбора и тестирования алгоритмических систем в данной программе в том, что вы можете реализовать свои идеи, основанные как на индикаторах, так и на цене баров, свечей.

Уделив данному занятию несколько месяцев, человек начинает отчетливо понимать, что ТС и ее параметры устойчиво зарабатывают лишь в тех случаях, когда рынок идеален для них, при отклонениях (изменения вол-сти, ATR, смены тенденции рынка) система начинает показывать результаты убыточных сделок.  Данные выводы наводят на мысль, что одной системой на одном инструменте обойтись нельзя.

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

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

«Фундаментальный анализ» – лженаука?

Здравствуйте, дамы и господа!

«Информация, которая у вас есть, не та, которую бы вы хотели бы иметь. Информация, которую бы вы хотели бы иметь, не та, которая вам нужна. Информация, которая вам нужна, не та, которую вы можете получить. Информация, которую вы можете получить стоит дороже, чем вы можете заплатить.»
Питер Л. Бернстайн. «Против богов. Укрощение риска»

Под «фундаментальным анализом» я подразумеваю попытки прогнозирования рыночных тенденций на основании анализа динамики факторов, влияющих на котировки финансовых инструментов. Прошу не путать фундаментальный анализ с торговлей на новостях: вышла «хорошая» новость для финансового инструмента – покупаем, «плохая» — жмем кнопку «Sell».

«Мы наблюдаем изменчивость, когда происходит что-то неожиданное. Пользы от этой тавтологии никакой — никто не знает, как предсказать неожиданное.»


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

Тревожно! Август наступает...

По мотивам топика...

Тревожно! Август наступает,
За ним сентябрь подло ждёт,
Октябрь заждаться не заставит,
А там — ноябрь к нам придёт!

Кабздец… Декабрь за ними следом,
Потом январь — куда бежать?
Февраль и март… с катушек съеду,
Пока апреля буду ждать!

На март с апрелем вся надёжа,
Что май с июнем пронесут.
Июль — спокойнее, но всё же
За ним же август! Нихт. Капут.

GBP/USD - снижение к 1.0700 уже не за горами.

GBP/USD - снижение к 1.0700 уже не за горами.
1W.Линейный масштаб. Продолжаю рассматривать возможность формирования конечной диагонали в пятой волне циклической степени, в составе которой развивается волна [5]ofV. В глобальной перспективе волна IV может быть продолжена в виде треугольника или комплексной.GBP/USD - снижение к 1.0700 уже не за горами.

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

EUR/USD - а почему не сходить на 1.80000 ?

EUR/USD - а почему не сходить на 1.80000 ?
1H Логарифмическая шкала цен. Продолжаю рассматривать возможность формирования начальной диагонали в волне a циклической степени, в составе которой действующие волны проявляют себя в виде зигзагов. Волна [5]OFa на своём пути должна обновить максимум волны [3] , но при этом не стать больше неё. В перспективе на ближайшие 5-10 лет жду цену в диапазон 1.60200 — 1.81000
  • обсудить на форуме:
  • EURUSD

[Индикатор] DeltaVolume Indicator - Реальный обьём и дельта на графике

Название: DeltaVolume Indicator (Индикатор Дельты и Обьёма) | Биржевой индикатор

Описание
Индикатор берёт информацию по проторгованному обьёму в продажу и в покупку реальных биржевых игроков Чикагской Товарной Биржи (CME) и отображает его на форексе.
DeltaVolume Indicator удобно выводит полученные сведения на графике Meta Trader. По умолчанию отображается вертикальный обьём с дневным периодом по текущему активному контракту с максимальным общий открытым интересом.

Дополнительная информация
Установка возможна только на мажоры, металлы, энергетику, индексы… BTC! Никаких кроссов! :d :d

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

Как пережить боль от потери денег

    • 26 апреля 2019, 18:39
    • |
    • DNA Hz
  • Еще

Уиии, время психологической статьи с очень оригинальным названием. Как же любят «специалисты» в этом деле переливать из пустого в порожнее. Тошнит читать одинаковые рецепты в интернете, написанные копирайтерами по 30 рэ за тысячу знаков. Как же много психологических опусов приходится изучать трейдеру в надежде найти там какие-то методы, что спасут и от внутреннего азарта, и от невыносимой боли внутри, когда ты теряешь деньги.

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

Великолепно, вы мне очень помогли, спасибо. В результате, пришлось самому, с нуля разрабатывать психологический арсенал, позволяющий справиться с самим собой. Ибо надежды на сторонние методы не оправдались. Все чушь и бред. Поэтому я поделюсь парочкой личных наработок. Возможно, они кому-то пригодятся.



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

....все тэги
UPDONW
Новый дизайн