Парный трейдинг - Грааль есть

  • Автор темы Автор темы MrSerj
  • Дата начала Дата начала

redneedle

red mercury
Дорогой, давай новую ветку открывай, топором помашем лавэ все вместе.
Просьба!

смысл открывать .... у меня готовые решения, обсуждать нечего.

да и тут хорошо, на все случаи жизни, напаковано ... и спереди и ззади хоть сбоку припёку ...
 

MrSerj

Элитный участник
MrSerj, пожалуйста объясните мне, что значит сделать расчет по текущему спреду, я тоже новичок, как и многие в этой ветке и поэтому мне сложно понять такую терминологию. Если на истории проводить расчеты с помощью Zero Point Revers не эффективно, тогда подскажите пожалуйста, как это сделать, с помощью какого индюка? Спасибо.

PS Кстати, MrSerj, я все остальные расчеты правильно сделал? Т.е. я по правильному принципу определил 90% профитных сделок?

MrSerj, но каким индикатором лучше всего воспользоваться для расчета???


Ну, Вы же пользуетесь зеро поинт. По нему и ведите расчеты. Только еще учтите тени в сторону проседания, от нулевой точки.
Еще недавно было предложение от пользователя «lba» воспользоваться индикатором Equity_SLE.mq4, он учитывает тени вроде.

В остальном расчеты правильно сделаны. :)
 

redneedle

red mercury
Кто нибудь может объяснить как пользоваться индюком Мультичарт?

:-) да да ... мало мало у нас индикаторов ... давайте со всего нета сюда их пиханем, а потом и крышу двинем в бесконечность

а вдруг какой-то граальным будет
и наканец-то 5 заветных сольдов деревом прорастут

... все же решения есть - ну вот что еще искать ?!
 

Санча

Новичок форума
Соблюдаю – понятие растяжимое. Нужно указывать конкретные расчеты, которые Вы применяете.
Обычно рискую в одной сделке 5% депо, правда если торговать по уловке №4 я не представляю как можно применить такой принцип ММ.

Ну, Вы же пользуетесь зеро поинт. По нему и ведите расчеты. Только еще учтите тени в сторону проседания, от нулевой точки.
Еще недавно было предложение от пользователя «lba» воспользоваться индикатором Equity_SLE.mq4, он учитывает тени вроде.

В остальном расчеты правильно сделаны. :)


ОК, рад это слышать! Долго пришлось помучаться, чтоб все понять =)
Вот бы еще разобраться и с уловкой №4 - классная уловка вроде, тоже вполне профитная, это очевидно. Вот только пока, к сожалению, слабоват я для нее - мозги начинают дымиться 8-))) и все... Но очень хочется и ее освоить. Большое спасибо за такой материал.

З.Ы. MrSerj, а это нормально, что такие долгие просадки на 15М? - уже больше суток.
 
Последнее редактирование:

coxah

Активный участник
кто нибудь может показать: где тут уровни прописаны? ато при переключение ТФ перескакивают на дефолтные.
//+------------------------------------------------------------------+
//| PairTrader_Ind v.2.mq4 |
//| Copyright © 2012, Mr.SilverKZ |
//| silverkz@@mail.kz |
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 Blue
#property indicator_color4 Red
//--------------------------------------------------------------------
extern string Symbol_1 = "EURUSD"; // Ôèíàíñîâûé èíñòðóìåíò ¹1
extern string Symbol_2 = "USDCHF"; // Ôèíàíñîâûé èíñòðóìåíò ¹2
extern bool Revers = true; // true - îòðèöàòåëüíàÿ êîððåëÿöèÿ
// false - ïîëîæèòåëüíàÿ êîððåëÿöèÿ
extern int Fast_MA = 8; // Ïåðèîä áûñòðîé ÌÀ
extern int Slow_MA = 21; // Ïåðèîä ìåäëåííîé ÌÀ
extern int MA_Method = 2; // Ìåòîä ðàñ÷åòà ÌÀ
// - MODE_SMA=0 Ïðîñòîå ñêîëüçÿùåå ñðåäíåå
// - MODE_EMA=1 Ýêñïîíåíöèàëüíîå ñêîëüçÿùåå ñðåäíåå
// - MODE_SMMA=2 Ñãëàæåííîå ñêîëüçÿùåå ñðåäíåå
// - MODE_LWMA=3 Ëèíåéíî-âçâåøåííîå ñêîëüçÿùåå ñðåäíåå
extern int MA_Price = 6; // Ðàñ÷åòíàÿ öåíà:
// - PRICE_CLOSE=0 Öåíà çàêðûòèÿ
// - PRICE_OPEN=1 Öåíà îòêðûòèÿ
// - PRICE_HIGH=2 Ìàêñèìàëüíàÿ öåíà
// - PRICE_LOW=3 Ìèíèìàëüíàÿ öåíà
// - PRICE_MEDIAN=4 Ñðåäíÿÿ öåíà, (high+low)/2
// - PRICE_TYPICAL=5 Òèïè÷íàÿ öåíà, (high+low+close)/3
// - PRICE_WEIGHTED=6 Âçâåøåííàÿ öåíà çàêðûòèÿ, (high+low+close+close)/4
extern int Delta = 20; // Ðàçìåð ðàçäâèæêè â ïóíêòàõ
extern double Lot = 0.1; // Áàçîâûé ëîò
extern int VOL_Mode = 2; // Ðåæèì ðàñ÷åòà îáúåìîâ äëÿ òîðãîâëè
// 1 - áàçîâûé ëîò ïî îáîèì èíñòðóìåíòàì
// 2 - ïî öåíàì îòêðûòèÿ
// 3 - ïî âîëàòèëüíîñòè
extern int PeriodATR = 144; // Ïåðèîä óñðåäíåíèÿ ATR äëÿ ðàñ÷åòà îáúåìîâ òîðãîâëè
//--------------------------------------------------------------------
double Spread_Buf[],Buf_Up[],Buf_Dw[],Symbol1_Buf[],Symbol2_Buf[];
double CurrentPoint1, CurrentPoint2, ZeroClose1, ZeroClose2;
string Text_1,Text_2,Text_3;
double Lots_1, Lots_2;
double kVol1, kVol2;
//--------------------------------------------------------------------
int init()
{
IndicatorBuffers(5);
IndicatorDigits(Digits);
//--------------------------------------------------------------------
SetIndexBuffer(0,Symbol1_Buf);
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);
SetIndexLabel (0,Symbol_1);
//--------------------------------------------------------------------
SetIndexBuffer(1,Symbol2_Buf);
SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,2);
SetIndexLabel (1,Symbol_2);
//--------------------------------------------------------------------
SetIndexBuffer(2,Buf_Up);
SetIndexStyle (2,DRAW_HISTOGRAM,STYLE_SOLID,1);
SetIndexLabel (2,"Spread");
//--------------------------------------------------------------------
SetIndexBuffer(3,Buf_Dw);
SetIndexStyle (3,DRAW_HISTOGRAM,STYLE_SOLID,1);
SetIndexLabel (3,"Spread");
//--------------------------------------------------------------------
SetIndexBuffer(4,Spread_Buf);
//--------------------------------------------------------------------
SetLevelStyle (STYLE_DOT,1,Red);
SetLevelValue (0,0);
SetLevelValue (1,Delta);
SetLevelValue (2,-Delta);
SetLevelValue (3,Delta*2);
SetLevelValue (4,-Delta*2);
SetLevelValue (5,Delta*3);
SetLevelValue (6,-Delta*3);
//--------------------------------------------------------------------
Create_RSI();
return;
}
//--------------------------------------------------------------------
double MACD(string symbol, int i)
{
double Vol = (iMA(symbol,0,Fast_MA,0,MA_Method,MA_Price,i)-
iMA(symbol,0,Slow_MA,0,MA_Method,MA_Price,i)) / MarketInfo(symbol, MODE_POINT);
return (Vol);
}
//--------------------------------------------------------------------
int start()
{
int i, Counted_bars;
//--------------------------------------------------------------------
CurrentPoint1 = 0;
CurrentPoint2 = 0;
kVol1=MarketInfo(Symbol_1, MODE_TICKVALUE)/MarketInfo(Symbol_1, MODE_TICKSIZE);
kVol2=MarketInfo(Symbol_2, MODE_TICKVALUE)/MarketInfo(Symbol_2, MODE_TICKSIZE);
Counted_bars=IndicatorCounted();
i=Bars-Counted_bars-1;
while(i>=0)
{
Symbol1_Buf = MACD (Symbol_1, iBarShift(Symbol_1, 0, Time, FALSE));
if(Revers) Symbol2_Buf = -1*MACD (Symbol_2, iBarShift(Symbol_2, 0, Time, FALSE));
else Symbol2_Buf = MACD (Symbol_2, iBarShift(Symbol_2, 0, Time, FALSE));

if((Symbol1_Buf[i+1]>Symbol2_Buf[i+1] && Symbol1_Buf[i+2]<=Symbol2_Buf[i+2]) ||
(Symbol1_Buf[i+1]<Symbol2_Buf[i+1] && Symbol1_Buf[i+2]>=Symbol2_Buf[i+2]))
{
CurrentPoint1 = 0;
CurrentPoint2 = 0;
ZeroClose1 = iClose(Symbol_1,Period(),iBarShift(Symbol_1,0,Time[i+1]));
ZeroClose2 = iClose(Symbol_2,Period(),iBarShift(Symbol_2,0,Time[i+1]));
}

CurrentPoint1 = iClose(Symbol_1,Period(),iBarShift(Symbol_1,0,Time)) - ZeroClose1;
if(Revers) CurrentPoint2 = -1*(iClose(Symbol_2,Period(),iBarShift(Symbol_2,0,Time)) - ZeroClose2);
else CurrentPoint2 = iClose(Symbol_2,Period(),iBarShift(Symbol_2,0,Time)) - ZeroClose2;

Spread_Buf = (CurrentPoint1 / MarketInfo(Symbol_1, MODE_POINT) - CurrentPoint2 / MarketInfo(Symbol_2, MODE_POINT));

Buf_Up = Spread_Buf;
Buf_Dw = Spread_Buf;
if(Spread_Buf < Spread_Buf[i+1]) Buf_Up = EMPTY_VALUE;
if(Spread_Buf > Spread_Buf[i+1]) Buf_Dw = EMPTY_VALUE;
i--;
}

CountLots();
if(Symbol1_Buf[1]>Symbol2_Buf[1])
{
Text_1 = Symbol_1+" Sell "+DoubleToStr(Lots_1,2);
if(Revers)Text_2 = Symbol_2+" Sell "+DoubleToStr(Lots_2,2);
else Text_2 = Symbol_2+" Buy "+DoubleToStr(Lots_2,2);
}
if(Symbol1_Buf[1]<Symbol2_Buf[1])
{
Text_1 = Symbol_1+" Buy "+DoubleToStr(Lots_1,2);
if(Revers)Text_2 = Symbol_2+" Buy "+DoubleToStr(Lots_2,2);
else Text_2 = Symbol_2+" Sell "+DoubleToStr(Lots_2,2);



}
Text_3 = "Spread = " + DoubleToStr(CurrentPoint1/MarketInfo(Symbol_1, MODE_POINT)-
CurrentPoint2/MarketInfo(Symbol_2, MODE_POINT),0);

ObjectSetText(WindowExpertName()+"1",Text_1,11,"Verdana",indicator_color1);
ObjectSetText(WindowExpertName()+"2",Text_2,11,"Verdana",indicator_color2);
ObjectSetText(WindowExpertName()+"3",Text_3,11,"Verdana",DarkGreen);
//--------------------------------------------------------------------
return;
}
//--------------------------------------------------------------------
int deinit()
{
ObjectDelete("Obj_RSI_1");
ObjectDelete("Obj_RSI_2");
ObjectDelete("Obj_RSI_3");
return;
}
//--------------------------------------------------------------------
int Create_RSI()
{
ObjectCreate(WindowExpertName()+"1",OBJ_LABEL, WindowFind(WindowExpertName()), 0, 0);
ObjectSet(WindowExpertName()+"1", OBJPROP_CORNER, 1);
ObjectSet(WindowExpertName()+"1", OBJPROP_XDISTANCE, 5);
ObjectSet(WindowExpertName()+"1", OBJPROP_YDISTANCE,20);

ObjectCreate(WindowExpertName()+"2",OBJ_LABEL, WindowFind(WindowExpertName()), 0, 0);
ObjectSet(WindowExpertName()+"2", OBJPROP_CORNER, 1);
ObjectSet(WindowExpertName()+"2", OBJPROP_XDISTANCE, 5);
ObjectSet(WindowExpertName()+"2", OBJPROP_YDISTANCE,40);

ObjectCreate(WindowExpertName()+"3",OBJ_LABEL, WindowFind(WindowExpertName()), 0, 0);
ObjectSet(WindowExpertName()+"3", OBJPROP_CORNER, 1);
ObjectSet(WindowExpertName()+"3", OBJPROP_XDISTANCE, 5);
ObjectSet(WindowExpertName()+"3", OBJPROP_YDISTANCE,60);

WindowRedraw();
}
//------------------------------------------------------------------
void CountLots()
{
Lots_1 = Lot;
if(VOL_Mode==1)
{
Lots_2 = Lot;
}
if(VOL_Mode==2)
{
Lots_2 = (Lots_1*kVol1*iOpen(Symbol_1,0,0))/kVol2/iOpen(Symbol_2,0,0);
}
if(VOL_Mode==3)
{
Lots_2 = (Lots_1*kVol1*iATR(Symbol_1,0,PeriodATR,1))/kVol2/iATR(Symbol_2,0,PeriodATR,1);
}
}
//--------------------------------------------------------------------
 

pecheneg

Новичок форума
Уважаемы SilverKZ, не могли бы вы выложить код индикатора Zero Point Revers v.4. Я не силен в программировании в MetaEditor, просто хочется попытаться добавить функцию записи всех параметров раздвижек в файл. Так, на мой взгляд, в некоторой степени удобно проводить анализ по статистике раздвижек. Заранее благодарен.
 

adre66

Элитный участник
смысл открывать .... у меня готовые решения, обсуждать нечего.

да и тут хорошо, на все случаи жизни, напаковано ... и спереди и ззади хоть сбоку припёку ...
Готовые решения продаются или позволите выложить в эфир?
 

tommy27

Гуру форума
кто нибудь может показать: где тут уровни прописаны? ато при переключение ТФ перескакивают на дефолтные.
//+------------------------------------------------------------------+
//| PairTrader_Ind v.2.mq4 |
//| Copyright © 2012, Mr.SilverKZ |
//| silverkz@@mail.kz |
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 Blue
#property indicator_color4 Red
//--------------------------------------------------------------------
extern string Symbol_1 = "EURUSD"; // Финансовый инструмент №1
extern string Symbol_2 = "USDCHF"; // Финансовый инструмент №2
extern bool Revers = true; // true - отрицательная корреляция
// false - положительная корреляция
extern int Fast_MA = 8; // Период быстрой МА
extern int Slow_MA = 21; // Период медленной МА
extern int MA_Method = 2; // Метод расчета МА
// - MODE_SMA=0 Простое скользящее среднее
// - MODE_EMA=1 Экспоненциальное скользящее среднее
// - MODE_SMMA=2 Сглаженное скользящее среднее
// - MODE_LWMA=3 Линейно-взвешенное скользящее среднее
extern int MA_Price = 6; // Расчетная цена:
// - PRICE_CLOSE=0 Цена закрытия
// - PRICE_OPEN=1 Цена открытия
// - PRICE_HIGH=2 Максимальная цена
// - PRICE_LOW=3 Минимальная цена
// - PRICE_MEDIAN=4 Средняя цена, (high+low)/2
// - PRICE_TYPICAL=5 Типичная цена, (high+low+close)/3
// - PRICE_WEIGHTED=6 Взвешенная цена закрытия, (high+low+close+close)/4
extern int Delta = 20; // Размер раздвижки в пунктах
extern double Lot = 0.1; // Базовый лот
extern int VOL_Mode = 2; // Режим расчета объемов для торговли
// 1 - базовый лот по обоим инструментам
// 2 - по ценам открытия
// 3 - по волатильности
extern int PeriodATR = 144; // Период усреднения ATR для расчета объемов торговли
//--------------------------------------------------------------------
double Spread_Buf[],Buf_Up[],Buf_Dw[],Symbol1_Buf[],Symbol2_Buf[];
double CurrentPoint1, CurrentPoint2, ZeroClose1, ZeroClose2;
string Text_1,Text_2,Text_3;
double Lots_1, Lots_2;
double kVol1, kVol2;
//--------------------------------------------------------------------
int init()
{
IndicatorBuffers(5);
IndicatorDigits(Digits);
//--------------------------------------------------------------------
SetIndexBuffer(0,Symbol1_Buf);
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);
SetIndexLabel (0,Symbol_1);
//--------------------------------------------------------------------
SetIndexBuffer(1,Symbol2_Buf);
SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,2);
SetIndexLabel (1,Symbol_2);
//--------------------------------------------------------------------
SetIndexBuffer(2,Buf_Up);
SetIndexStyle (2,DRAW_HISTOGRAM,STYLE_SOLID,1);
SetIndexLabel (2,"Spread");
//--------------------------------------------------------------------
SetIndexBuffer(3,Buf_Dw);
SetIndexStyle (3,DRAW_HISTOGRAM,STYLE_SOLID,1);
SetIndexLabel (3,"Spread");
//--------------------------------------------------------------------
SetIndexBuffer(4,Spread_Buf);
//--------------------------------------------------------------------
SetLevelStyle (STYLE_DOT,1,Red);
SetLevelValue (0,0);
SetLevelValue (1,Delta);
SetLevelValue (2,-Delta);
SetLevelValue (3,Delta*2);
SetLevelValue (4,-Delta*2);
SetLevelValue (5,Delta*3);
SetLevelValue (6,-Delta*3);

//--------------------------------------------------------------------
Create_RSI();
return;
}
//--------------------------------------------------------------------
double MACD(string symbol, int i)
{
double Vol = (iMA(symbol,0,Fast_MA,0,MA_Method,MA_Price,i)-
iMA(symbol,0,Slow_MA,0,MA_Method,MA_Price,i)) / MarketInfo(symbol, MODE_POINT);
return (Vol);
}
//--------------------------------------------------------------------
int start()

Отметил красным где и исходя из чего считаются.
 

redneedle

red mercury
Готовые решения продаются или позволите выложить в эфир?

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

а все потому что ценности нет материалу потому как нет понимания что и для чего

лес лесом а отряд кругами ходит, товарищь комисар
 

Andri770

Местный житель
Рэднидл подскажи ,что за индюк у тебя на скрине по середине ?
 

Вложения

  • 100.jpg
    100.jpg
    112,4 КБ · Просмотры: 344

adre66

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

а все потому что ценности нет материалу потому как нет понимания что и для чего

лес лесом а отряд кругами ходит, товарищь комисар

Так и я об этом, асфальт для партизан нужен.:rolf:
 

Rintuk

Активный участник
Вот блин опять с индюком понт какой то... Три доливки. По индюку все сошлось, но минус как висел, так и висит
 

Вложения

  • 20.04.jpg
    20.04.jpg
    135,7 КБ · Просмотры: 313

Мерлин

Активный участник
Давайте так. Если задаете вопросы из серии первой части ветки.
Приводите полный свой бизнес план (расчеты по нулевым точкам (на основании чего делали расчеты, каким методом, параметры), применяемая уловка, расчеты по РМ и ММ, и еще что считаете нужно указать). Тогда будем рассматривать, а так гадать, что там да как и вытягивать по куску, много драгоценного времени в пустую уходит.

вот так и правильно! чтобы была конкретика...
 

MaKKeHu

Новичок форума
Вот блин опять с индюком понт какой то... Три доливки. По индюку все сошлось, но минус как висел, так и висит

Она не сошлась. Днло в том, что данный индикатор прирывает сделки в случае, если сделкадостикпет большой раздвижки и НИКОГДА НЕ СОЙДЕТСЯ. На индюке видно огромные раздвижки, которые потом типа сходятся. Так вот это тот вариант когда вы сольнте депозит если не прикроете. Индикатор выставляет в таком случае новую нулевую точку. Вся сложность данного метода как раз и заключается в том, что если мы где-то МИНИМАЛЬНО пожадничаем, то это будет стоить нам сливам. Данный метод (парного трейдинга) будет иметь эффективность только при торговле большим количеством пар. И соответственно для этого нужен соответствующий депозит.
 

MaKKeHu

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

redneedle

red mercury
Вот блин опять с индюком понт какой то... Три доливки. По индюку все сошлось, но минус как висел, так и висит

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

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

потому не удивляйтесь, что макдак пересекся а цена нет -)
 

Санча

Новичок форума
Она не сошлась. Днло в том, что данный индикатор прирывает сделки в случае, если сделкадостикпет большой раздвижки и НИКОГДА НЕ СОЙДЕТСЯ. На индюке видно огромные раздвижки, которые потом типа сходятся. Так вот это тот вариант когда вы сольнте депозит если не прикроете. Индикатор выставляет в таком случае новую нулевую точку. Вся сложность данного метода как раз и заключается в том, что если мы где-то МИНИМАЛЬНО пожадничаем, то это будет стоить нам сливам. Данный метод (парного трейдинга) будет иметь эффективность только при торговле большим количеством пар. И соответственно для этого нужен соответствующий депозит.


Да, такой глюк есть не только в Pair Trader, но и в Zero Point. Если возникает огромная раздвижка и потом долго болтается, то индюк показывает, что она бац и резко сошлась, т.е. как бы раздвижку "за уши притягивает" к нулевой точке :) Вобщем это почти та же самая перерисовка.
 
Верх