Избранное трейдера kaainfo
Всем привет! Это мой первый пост, так что просьба не пинаться сильно)
Хочу показать вам систему по которой я сейчас торгую, а также свои и чужие дополнения к ней — возможно кому-то понравится.
Система прекрасно подойдёт для тех, кто совмещает трейдинг с основной работой и не имеет возможности следить за графиками в течении дня.
1. Для начала собственно ссылка на оригинал системы от автора:
www.forexfactory.com/showthread.php?t=386701
2. Основные правила системы на русском рассказаны по ссылке (лень сюда дублировать):
tradelikeapro.ru/torgovaya-sistema-the7/
3. Видео по теме:
> list.files(«E:/syst/lib»)
[1] "_algo_ algotrading.pdf"
[2] "_algo_ IntroductionToAlgorithmicTradingStrategies.pdf"
[3] "_algo_ stan.pdf"
[4] "_bayes_ applied bayesian modelling.pdf"
[5] "_bayes_ bajesovskie seti… logiko-veroyatnostnyj podxod.djvu"
[6] "_bayes_ bayesian statistical modelling.pdf"
[7] "_bayes_ BayesNets.pdf"
[8] "_bayes_ байесовские методы маш обуч.pdf"
[9] "_bayes_ введение в методы байесовского статистического вывода.djvu"
[10] "_caus_ Application of adaptive nonlinear Granger causality.pdf"
[11] "_caus_ Causalities of the Taiwan Stock Market.pdf"
[12] "_caus_ granger causality — theory and applicts.pdf"
[13] "_caus_ grangercausality.pdf"
[14] "_caus_ sugihara-causality-science.pdf"
[15] "_caus_ Причинный анализ в статистических исследованиях.djvu"
[16] "_change_ adaptive filtering and change detection.djvu"
[17] "_change_ detection of abrupt changes.pdf"
[18] "_change_ Efficient Multivariate Analysis of Change Points.pdf"
[19] "_change_ nikiforov_i_v_posledovatelnoe_obnaruzhenie_izmeneniya_svoist.djvu"
[20] "_change_ zhiglyavskii_a_a_kraskovskii_a_e_obnaruzhenie_razladki_sluch.djvu"
[21] "_change_ адаптивный метод обнаружения нарушений закономерностей по наблюдениям.pdf"
[22] "_change_ Момент разладки Чернова.pdf"
[23] "_change_ обнаружение изменения свойств сигналов и динамических систем.djvu"
[24] "_change_ обнаружение моментов разладки случайной последовательности.pdf"
[25] "_change_ обнаружение нарушений закономерностей по наблюдениям при наличии помех.pdf"
Перевод (http://bettersystemtrader.com/sharpe-ratio-right-answer-wrong-question/)
Многие используют коэффициент Шарпа, но до конца не понимают в чем прелесть данного показателя.
Для начала давайте выясним, что коэффициент Шарпа делает хорошо:
Мы все знаем, что в создании портфеля стратегий очень важно правильное распределение активов. Трудность состоит в том, чтобы найти единую метрику оценки разных стратегий, скорректированную на размер риска. Это то, что делает коэффициент Шарпа. С помощью него мы получаем единую меру для измерения риска различных классов активов: облигаций, акций, фьючерсов, сырья и т.д.
Человеческому мозгу трудно связать неопределенность с риском. Риск активирует миндалевидное тело (амигдала), а та активирует рефлекс бей-беги. В данном случае Шарп можно использовать как хорошую оценку неопределенности, он является отношением результативности стратегии к неопределенности.
Settings = { Name = "xBollinger_LinReg", period = 40, deviation=2, line= { { Name = "xBollinger_LinReg", Color = RGB(0, 0, 255), Type = TYPE_LINE, Width = 2 }, { Name = "xBollinger_LinReg", Color = RGB(192, 0, 0), Type = TYPE_LINE, Width = 2 }, { Name = "xBollinger_LinReg", Color = RGB(0, 128, 0), Type = TYPE_LINE, Width = 6 } } } function c_FF() local AMA={} local CC={} return function(ind, _p,_ddd) local period = _p local index = ind local vol = 0 local sigma = 0 local sigma2 = 0 local aav = 0 local bb = 0 local ZZZ = 0 if index == 1 then AMA={} CC={} CC[index]=(C(index)+H(index)+L(index))/3 AMA[index]=(C(index)+O(index))/2 return nil end ------------------------------ AMA[index]=AMA[index-1] CC[index]=(C(index)+H(index)+L(index))/3 if index < (_p) then return nil end period =_p if index < period then period = index end --------------- sigma=0 sigma2=0 aav=0 ZZZ=0 for i = 0, period-1 do ZZZ=CC[index+i-period+1] aav=aav+ZZZ sigma=sigma+ZZZ*(-(period-1)/2+i) sigma2=sigma2+(-(period-1)/2+i)^2 end bb=sigma/sigma2 aav=aav/period AMA[index]=aav+bb*((period-1)/2) sigma=0 sigma2=0 sigma3 = 0 for i = 0, period-1 do ZZZ=CC[index+i-period+1] sigma2=aav+bb*(-(period-1)/2+i) sigma=sigma+(ZZZ-sigma2)^2 end sigma=(sigma/period)^(1/2) return AMA[index]-sigma*_ddd,AMA[index]+sigma*_ddd, AMA[index] end end function Init() myFF = c_FF() return 3 end function OnCalculate(index) return myFF(index, Settings.period,Settings.deviation) end
Доброе.
Повторю то, что уже говорили многие.
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Text;
using System.Timers;
using System.Threading;
using XlDde;namespace ConsoleApplication2
{
class Program
{
const string service = «myDDE»;
const string candleSPOT = «SPOT»;
static void Main(string[] args)
{
using (XlDdeServer server = new XlDdeServer(service))
{
server.AddChannel(candleSPOT, new SPOTChannel());
server.Register();Console.WriteLine(«DDE server ready. Press Enter to exit.\n\n»);
Console.ReadLine();
}
}
}
// **********************************************************************
// * Классы DDE каналов с обработчиками данных *
// **********************************************************************
class SPOTChannel: XlDdeChannel
{
//static int time2 = 1000;
static int em = 7;
static int m = 1200;
static int[] NM = new int[em];
static int NMM = 0;
static int LastMinute = 0;
static int mm = 1638400;
static double[] Price_trade = new double[mm];
string[] EM_trade = new string[mm];
static int[] Time_trade_I = new int[mm];
static int[] Volume_trade = new int[mm];
static int[,] Time = new int[em,m];
static double[,] O = new double[em,m];
static double[,] H = new double[em,m];
static double[,] L = new double[em,m];
static double[,] C = new double[em,m];
static double[,] V = new double[em,m];
protected override void ProcessTable(XlTable xt)
{
//int time3 = 1000;
int[] nach = new int[em];
int nach1 = 0;
int i = 0;
int j = 0;
int s = 0;
int curHour = 0;
int curMin = 0;
int curDay = 0;
int curSec = 0;
int curDay_1 = 0;
string name;
string[] bf;
string[] EM = new string[em];
DateTime moment;
string[] Time_trade = new string[mm];
Многие трейдеры на Московской бирже хотели бы автоматизировать свои торговые алгоритмы, но не знают с чего начать. А ведь давно есть проработанные решения, которые максимально облегчают первые шаги в алготрейдинге.
Язык MQL5 изначально поддерживает все торговые возможности платформы MetaTrader 5 — в нем множество торговых функций для работы с ордерами, позициями и торговыми запросами. При этом не имеет значения, на каком рынке вы торгуете - фьючерсы, акции, опционы и т.д.
Средствами MQL5 вы можете создать торговый запрос и отослать его на сервер с помощью функций OrderSend() или OrderSendAsync(), получить результат его выполнения, просмотреть торговую историю, узнать спецификацию контракта для инструмента, обработать