Страница 11 из 12

Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем

Добавлено: 22 дек 2017, 23:05
Tyler_Durden
робот тоже встал в позицию :)

Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем

Добавлено: 23 дек 2017, 06:20
evge
Насчёт Грааля пошутил, ведь все съест комиссия и перерисовка, т.е. ложные сигналы для нижестоящего тф. Тестирование эти ложные входы не покажет.

Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем

Добавлено: 23 дек 2017, 11:56
Tyler_Durden
Это понятно, этот индикатор ведь для демонстрации, просто чтобы принципиально понять что работают те,которые рисуют в [1].

Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем

Добавлено: 23 дек 2017, 12:54
evge
Не работало бы и [0], там причина в другом была. Я, например, тестировал при переделанных всех индикаторах на [0], т.к. переделал при поиске ошибки и тест выше тоже с переделанными уже. Когда нашел ошибку, я понял что не важно 0,1 или др. индекс. Т.к. ошибка не из этой области.

Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем

Добавлено: 23 дек 2017, 14:15
Tyler_Durden
Тогда почему робот в старом коде (до вчерашней корректировки) на пересечениях (т.е. в [0] ) работал, открывал и закрывал позиции, а индикатор , рисующий в [1] не работал - у меня он при нажатии кнопки запускался и тут же выключался сам, то есть переходил в неактивное серое состояние.
Каким-то образом это связано было с [0] и [1] помимо

Код: Выделить всё

string Ticker = "";
видимо.

Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем

Добавлено: 23 дек 2017, 15:22
evge
Код индикаторов одинаково НЕ тестировался при 0 и 1 индексах смещения у меня. Результат одинаковый. Убрал тикер, заработало.

Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем

Добавлено: 25 дек 2017, 10:52
Tyler_Durden
Евгений, добрый день !

Можно ли исключить ложные появления сигналов путем дополнительной проверки на рабочем ТФ?
то есть обратный переворот позиции после исчезновения сигнала на котором робот зашел в позицию?

Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем

Добавлено: 25 дек 2017, 11:43
evge
Любой переворот будет совершать ещё пару сделок: закрыть открытую позицию и открыть в другом направлении. Таких переворотов может быть несколько на раб ТФ, пока сигнал вышестоящего окончательно не сформируется. Здесь будут формироваться убытки, комиссия и отрицательный результат этих сделок.

Наверное, можно уменьшить число ложных сигналов доп. фильтрами, например, 2 или более подряд сигнала на рабочем ТФ или другие фильтры.

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

Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем

Добавлено: 25 дек 2017, 12:52
Tyler_Durden
Да, это все понятно, поэтому он и рисует граалевидный график.
Тут просто все зависит от индикатора - от степени его точности.
Он может выдавать кучу ложных сигналов , а может выдать всего пару-тройку за несколько часов.

Я про это и спрашиваю. Как их можно избежать.

Допустим проверять последний сигнал на закрытии каждого бара на рабочем ТФ? Если он другой - переворот

Re: FractalsMTF - отображение фракталов старшего таймфрейма на младшем

Добавлено: 27 дек 2017, 13:28
Tyler_Durden
Евгений добрый день !

не подскажете, почему он сразу не открывает позицию, хотя ему указано, что ПОСЛЕДНИЙ , то есть должен вставать сразу после запуска?
И вообще он плохо открывает.
Специально S3 из М10 , чтоб не долго думал

Код: Выделить всё

function Initialize()
{
StrategyName = "1";
AddInput("Input1", Inputs.Candle, -3, true, "");
LongLimit = 1;
ShortLimit = 1;
}

function OnUpdate()
{
var lastLVal = MY.ReadData_X(Input1, 1).GetLastValues("L", 1)[0];
var lastHVal = MY.ReadData_X(Input1, 1).GetLastValues("H", 1)[0];
{
/// ПРАВИЛО 1
if ( (lastHVal.X > lastLVal.X ? lastHVal.Y : lastLVal.Y) == (lastLVal.Y) )
{
EnterLongLimit(GetLast());
}
/// ПРАВИЛО 2
if ( (lastHVal.X > lastLVal.X ? lastHVal.Y : lastLVal.Y) == (lastHVal.Y) )
{
EnterShortLimit(GetLast());
}
}
}