Автор |
Сообщение |
DUN
Зарегистрирован: 26.02.2018
Сообщения: 12
|
КАК ОТПИСАТЬ МАССИВ ТОЛЬКО БЫЧЬИХ СВЕЧЕЙ ИЛИ МЕДВЕЖЬИХ В ДАННОМ АЛГОРИТМЕ.
в расчете участвуют бычьи бары либо медвежьи.
принцип такой:
только для
Cond1= C-O>0;
//рассматриваются только бычьи бары медвежьи пропускаются
Cond2=ref (C,-2)>ref(C,-1)<C;
//данное условие по 3 бычьим барам, последние 2 бара обязательно подряд
R=ref(C,-2)-ref(O,-1);
//R растояние , геп, между2 и 3 барами(это пропущенные медвежьи бары)
G= Optimize("K",25,0.1,10,0.1);
// просто константа
K=R*100/ATR(n);
//коэфициент в %, K это процентное значение к ATR(n) n баров только белых
n= Optimize("n",25,1,60, 1);
//n количество баров в ATR
Cond3= G > K ;
//условие которое должно соблюдаться по разрыву между бычьими свечами 2 свечей и 3 свечей, которые расположены не подряд
Buy = Cond1 and Cond2 and Cond3 and ?????;
//условие покупки, но обязательно покупка производится на пробое H хая последней бычьей свечи
BuyPrice = H+Z;
Z= Optimize("Z", 0.1,3,0.1);
//Z это отступ от H цены в % от среднего ATR (n) n только белых баров.
Cond4=
//по тейку или C n бара
Sell = Cond4;
SellPrice = Close;
для шорта противоположна позиция
Cond5=C-O<0;
// участвуют только медвежьи бары, бычьи бары не рассматриваются.
когда встречаются O=C бар не пропускается.
Cond6=Ref(C,-2)<Ref(C,-1)>C; |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Я понял что именно надо. Попробуй объяснить понятнее. Алгоритм понял. Не понял в чем вопрос. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
DUN
Зарегистрирован: 26.02.2018
Сообщения: 12
|
000 писал(а): |
Я понял что именно надо. Попробуй объяснить понятнее. Алгоритм понял. Не понял в чем вопрос. |
|
Последний раз редактировалось: DUN (Пт Апр 20, 2018 4:11 pm), всего редактировалось 1 раз |
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
DUN
Зарегистрирован: 26.02.2018
Сообщения: 12
|
не знаю как отписать код для выборки только бычьих баров чтобы с ним работать |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
DUN
Зарегистрирован: 26.02.2018
Сообщения: 12
|
DUN писал(а): |
000 писал(а): |
Я понял что именно надо. Попробуй объяснить понятнее. Алгоритм понял. Не понял в чем вопрос. |
|
не знаю как отписать код для выборки только бычьих баров чтобы с ним работать |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А вместо медвежьих что останется? Пустое место или надо сделать новый ряд в котором медвежьих вообще как будто небыло? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
DUN
Зарегистрирован: 26.02.2018
Сообщения: 12
|
новый ряд в котором медвежьих вообще как будто не было,
но тогда встанет следующий вопрос как отписать ряд медвежьих где какбудто нет бычьих чтобы соеденить все вместе. |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вот так. Только это явно не то, что тебе надо было... )))
Код: |
SetBarsRequired(sbrAll, sbrAll);
j = k = BarCount - 1;
BeerOpen = BeerClose = BeerHigh = BeerLow = BulOpen = BulClose = BulHigh = BeerHigh = 0;
for( i = BarCount - 1; i > 0; i-- )
{
if( C[i] < O[i] )
{
BeerOpen[j] = O[i];
BeerClose[j] = C[i];
BeerHigh[j] = H[i];
BeerLow[j] = L[i];
j--;
}
else if( C[i] > O[i] )
{
BulOpen[k] = O[i];
BulClose[k] = C[i];
BulHigh[k] = H[i];
BulLow[k] = L[i];
k--;
}
}
Plot(C, "C", colorBlack, styleCandle);
PlotOHLC(BeerOpen, BeerHigh, BeerLow, BeerClose, "", colorRed, styleCandle);
PlotOHLC(BulOpen, BulHigh, BulLow, BulClose, "", colorGreen, styleCandle);
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
DUN
Зарегистрирован: 26.02.2018
Сообщения: 12
|
не понятно что это такое
посотрел |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Этот код выдает три ценовых ряда. Один обычный, во втором только бычьи свечи, в третьем только медвежьи. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
DUN
Зарегистрирован: 26.02.2018
Сообщения: 12
|
мне нужно чтобы в расчетах брались только такие бары , это для бычьих .
на рисунке я просто их с экрана отрисовку убрал . а для индюка мне нужно что расчеты из такого экрана брались. |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
DUN
Зарегистрирован: 26.02.2018
Сообщения: 12
|
000 писал(а): |
Этот код выдает три ценовых ряда. Один обычный, во втором только бычьи свечи, в третьем только медвежьи. |
как в выделенном случае, вертикальная белая линия, при реальном медвежьем баре в масиве отрисовывается бычья свеча ? и наоборот |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
DUN
Зарегистрирован: 26.02.2018
Сообщения: 12
|
000 писал(а): |
Этот код выдает три ценовых ряда. Один обычный, во втором только бычьи свечи, в третьем только медвежьи. |
из вашего кода оставил только медвежьи бары и график цены.
не могу разобраться почему бары цены и бары медвежьего графика разные за счет чего это так отображается? |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
DUN
Зарегистрирован: 26.02.2018
Сообщения: 12
|
000 писал(а): |
Вот так. Только это явно не то, что тебе надо было... )))
Код: |
SetBarsRequired(sbrAll, sbrAll);
j = k = BarCount - 1;
BeerOpen = BeerClose = BeerHigh = BeerLow = BulOpen = BulClose = BulHigh = BeerHigh = 0;
for( i = BarCount - 1; i > 0; i-- )
{
if( C[i] < O[i] )
{
BeerOpen[j] = O[i];
BeerClose[j] = C[i];
BeerHigh[j] = H[i];
BeerLow[j] = L[i];
j--;
}
else if( C[i] > O[i] )
{
BulOpen[k] = O[i];
BulClose[k] = C[i];
BulHigh[k] = H[i];
BulLow[k] = L[i];
k--;
}
}
Plot(C, "C", colorBlack, styleCandle);
PlotOHLC(BeerOpen, BeerHigh, BeerLow, BeerClose, "", colorRed, styleCandle);
PlotOHLC(BulOpen, BulHigh, BulLow, BulClose, "", colorGreen, styleCandle);
|
|
это реально не то отображает |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Я вроде понял что тебе надо. Это не очень просто а у меня сейчас времени мало... Жди. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
|