Механика на основе Метастока

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

mehanizator1

New member
А вот если я думаю, если я тестирую систему оффлайн, и на историч данных, то робота оффлай уже по определению не протестируешь, да?
робот это и есть система. вернее система - это алгоритм, по которому действует робот. ты тестируешь систему, потом заряжаешь ее в робота.
 

Елена

New member
А вот если я думаю, если я тестирую систему оффлайн, и на историч данных, то робота оффлай уже по определению не протестируешь, да?
робот это и есть система. вернее система - это алгоритм, по которому действует робот. ты тестируешь систему, потом заряжаешь ее в робота.
da, ia ponimaiu. vopros v tom, mogno li posmjtret, kak on eto delaet, ne na rinke. da hotia ia ponimaiu chto v etom net smisla...
 

mehanizator1

New member
А вот если я думаю, если я тестирую систему оффлайн, и на историч данных, то робота оффлай уже по определению не протестируешь, да?
робот это и есть система. вернее система - это алгоритм, по которому действует робот. ты тестируешь систему, потом заряжаешь ее в робота.
da, ia ponimaiu. vopros v tom, mogno li posmjtret, kak on eto delaet, ne na rinke. da hotia ia ponimaiu chto v etom net smisla...
так вы же видите результаты тестирования системы - это оно и есть.
что значит нет смысла?
 

Drug-dealer

New member
Вывод в файл

Работаю над простенькой МТС на связке Метасток - Квик. Перебрал множество вариантов, но не смог решить проблему: при срабатывании сигнала запись в .tri файл не происходит.

Код индикатора простейший, для тестирования, и выглядит так:


A:=If(Cross(CLOSE, Mov(CLOSE, 21, E)), 1, 0);

B:=If(Cross(Mov(CLOSE, 21, E), CLOSE), -1, 0);

BuySell:=A+B;

Ident:=1;

FakeVar:=ExtFml( "msx_ksr.TradeQuik",BuySell, "", "" , L, (CLOSE*1.03), BuySell, Ident);

BuySell;


В .ini файле прописано всё, что там должно быть, сообщений об ошибке не появляется.

Подскажите, в чём может быть дело, что не так?
 

Dimus

New member
Специфика, dll Косинского на базе которого сделана данная механика, основана на том, что строка в tri-файл записывается только в том случае если сигнал возник по open свечи. Поставте BuySell:=Ref(A+B,-1).
 

V8

New member
Я обиделась. я просто новичок. и между почим разбираюсь во всем сама. Как можно так людей обижать?
Что за аватарка -? Вы не моя жена -? Если да, то я ещё пока в санатории Угличе, можешь приезжать, и чегой ты сюда залезла
 

Drug-dealer

New member
Спасибо за ответ, BuySell:=Ref(A+B,-1) действительно помог. Но возникла новая проблема. В "точке разворота" должна закрываться длинная позиция и открываться короткая (или наоборот), т.е. происходит двойная продажа (покупка). При сигнале значение функции равно 1 (-1), а на следующей свече возвращается к 0. При этом происходит закрытие только что открытой позиции. Как этого избежать? Перебрал сегодня десяток вариантов, уже начали сказываться ограничения метастоковского языка. Пытался при нейтральном значении индикатора вызывать ошибку (деление на ноль), но и это не помогало.

A:=If(индикатор на покупку), 1, 0);

B:=If(индикатор на продажу), -1, 0);

BuySell:=Ref(A+B,-1);

Ident:=1;

Pr:=if(BuySell=1, (close*1.003), (close*0.997));

FakeVar:=ExtFml( "msx_ksr.TradeQuik", BuySell, "SPBFVT", "1234" , L, Pr, 1, Ident);

BuySell;
 

Dimus

New member
Используй следующий алгоритм (работает корректно):
EL: <открытие лонга>
CL: <закрытие лонга>
ES: <открытие шорта>
CS: <закрытие шорта>
BuySell:=If(Cum(1)=1,0,If(EL,1,If(ES,-1,If((CL AND PREV=1) OR (CS AND PREV=-1),0,PREV)))) и т.д.

а вообще МТС на связке dll Косинского - это так, самое начало. просто для понимания как все выглядит и работает.
 

Drug-dealer

New member
Спасибо за алгоритм! Правда пришлось добавить BuySell:=Ref(BuySell, -1), что вносит некую задержку.

Информация по МТС на Metastock - Quik сильно разрознена, попробую выложить пошаговую инструкцию как сделать робота с нуля.
 

PAST

New member
Используй следующий алгоритм (работает корректно):
EL: <открытие лонга>
CL: <закрытие лонга>
ES: <открытие шорта>
CS: <закрытие шорта>
BuySell:=If(Cum(1)=1,0,If(EL,1,If(ES,-1,If((CL AND PREV=1) OR (CS AND PREV=-1),0,PREV)))) и т.д.

а вообще МТС на связке dll Косинского - это так, самое начало. просто для понимания как все выглядит и работает.
Вы можете предложить полноценного робота в связке Квик-Метасток.
Цена может быть оговорена
 

PAST

New member
Спасибо за алгоритм! Правда пришлось добавить BuySell:=Ref(BuySell, -1), что вносит некую задержку.

Информация по МТС на Metastock - Quik сильно разрознена, попробую выложить пошаговую инструкцию как сделать робота с нуля.
У Вас не пропало желание выложить пошаговую инструкцию. Интересная идея.
 
Your email address will not be publicly visible. We will only use it to contact you to confirm your post.
Сверху