Просмотр сообщений
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Topics - micstura
16
« on: 03.04.2014, 20:35:54 »
Почему параболик индикатор из Транзака и параболик индикатор из документации АТФ при одних и тех же параметрах дают разные показатели ? 36354 показания параболика Транзак 36713 показания параболика АТФ инструмент си тайм фрейм дневной 03.04.2012 параметры в обоих случаях стандартные 0.02 0.02 0.2
17
« on: 20.02.2014, 02:44:55 »
#samewindow #line 0 solid #00C000 #line 1 solid #006000 #line 2 solid #006000 extern ma_period = 20; extern sd_period = 20; extern k = 2; function init()
{ setInitCandles(1); } function startWatchingBollingerBands() { addCrossWatch(0); addCrossWatch(3); } //function onApprovedCross(var a, var b) function onCross(var a, var b)
{
if (a == 1 && line[0] < close) { trade_action::buy(1, ::lots);
//if (a == -1 && line[0] > close) { // trade_action::sell(1, ::lots); //}
var m = ma_period; if (m < sd_period) {m = sd_period;} setInitCandles(m); setBounds(0, m, 0); setBounds(1, m, 0); setBounds(2, m, 0); } } function calc() { var sd = StdDev(stddev_abs, sd_period, pt_close); var v = MovAvg(ind_sma, ma_period, pt_close); line[0] = v; line[1] = v + k * sd; line[2] = v - k * sd; line[3] =line[0][-1];
}
Почему нет сделок значения а перепробовал разные и 0 и 1 и -1 также пробовал и варианте который закомментирован.
18
« on: 19.02.2014, 11:37:20 »
Почему строки var a; var fortshash= getFORTSPosition(client, secid); a=fortshash["totalnet"]; // теперь в переменной а хранится значаение текущей позиции по клиенту client и бумаге secid
Приводят к сообщению неизвестный идентификатор. Хочу получить текущую позицию и сделку заключать в случае если она равна 0.(позиция отсутствует)
И почему нельзя написать так
static pos; pos = getFORTSPosition(client, sec);
19
« on: 15.02.2014, 14:43:36 »
Не пойму что показывает param_open То есть определение Цена первой сделки (ATF 1.17) мне вроде понятно , а вот как это применить ?
#samewindow
function calc() { var x = param_open; line[0] = x*1000; }
20
« on: 14.02.2014, 17:23:04 »
Как написать открытие первой свечи дня и вывести это открытие на график в виде линии ? Ведь открывая любой тайм фрейм ниже дневного эта линия будет в одном и том же месте на весь день.
21
« on: 11.02.2014, 12:31:00 »
var x = getHistColor(); signal::output(" Цвет " + getHistColor() );
получаю при любом цвете гистограммы Цвет 0
22
« on: 25.01.2014, 16:48:07 »
Почему АТФ умирает кол-во пользователей уменьшилось до ни кого и разработчики отвечают не хотя и выборочно ? Несколько лет назад глюков было больше , а на форуме довольно оживлённо. Люди с форума ушли именно из-за отношения разработчиков ?
23
« on: 23.11.2013, 23:06:58 »
Всё делаю по инструкции почему у меня ни в одном скрипте нет торговых сигналов на экране Основа любого индикатора — это функция calc(), которая в нашем случае содержит формулу, задающую значения линий индикаторов line для каждого бара.
function calc()
{ //Это быстрая линия MACD: line[0] = MovAvg(ind_ema, 12, pt_close) — MovAvg(ind_ema, 26, pt_close); //Это медленная линия MACD: line[1] = MovAvg(ind_ema, 9, line[0]); }
Следующим шагом зададим условия покупки / продажи и выведем информацию об их выполнении на экран.
function calc() { //сигналы: //Быстрая линия пересекла медленную снизу вверх: if (line[0] > line[1] and line[0][−1] < line[1][−1]) { signal::alert(«Покупай » + getSecName()); }
//Быстрая линия пересекла медленную сверху вниз:: if (line[0] < line[1] and line[0][−1] > line[1][−1]) { signal::alert(«Продавай » + getSecName()); } }
Код ATF с помощью функции signal::alert выводит на экран сообщение с рекомендацией покупки либо продажи при пересечении линий MACD. Обратите внимание на индикаторы line[0][−1] и line[1][−1] — с их помощью мы получаем значения линий 0 и 1 на предыдущем баре. Сравнение этих значений помогает определить, сверху или снизу быстрая линия MACD пересекает медленную. Функция getSecName() возвращает имя текущей бумаги.
Для того чтобы автоматизировать процесс, доверив ATF совершение сделок, достаточно заменить команду signal на команду trade_action. С помощью функции IndRef воспользуемся встроенным в TRANSAQ индикатором MACD Histogram, пересечение которого с 0 и говорит о пересечении линий MACD, — это упростит код стратегии.
function calc() { line[0] = IndRef(«macdhistogram», 12, 26, 9, ind_ema, ind_ema, ind_ema, pt_close)[0]; if (line[0] > 0 and line[0][−1] < 0) { trade_action::buy(1, ::lots); } if (line[0] < 0 and line[0][−1] > 0) { trade_action::sell(1, ::lots); } }
Можно сделать стратегию сложнее и открывать позиции только при наличии выраженного тренда. Для этой цели будем проверять значение индикатора ADX (индекс направленного движения), введя в код стратегии дополнительное условие:
function calc() { line[0] = IndRef(«macdhistogram», 12, 26, 9, ind_ema, ind_ema, ind_ema, pt_close)[0]; if (IndRef(«adx», 27)[1] > 20 or getSecBalance() > 0) { if (line[0] > 0 and line[0][−1] < 0) { trade_action::buy(1, ::lots); } if (line[0] < 0 and line[0][−1] > 0) { trade_action::sell(1, ::lots); } }
24
« on: 23.11.2013, 08:30:43 »
#samewindow #line 0 solid red extern period = 10; function init() { setInitCandles(1); } function calc() { line[0] = MovAvg(ind_sma, period, pt_close); if (close > line[0] and close[-1] < line[0][-1]) { signal::alert("Покупай!"); } if (close < line[0] and close[-1] > line[0][-1]) { signal::alert("Продавай!"); } }
Как в скрипте добиться получения сигналов на графике. Когда закрываешь окно появляется сообщение к этому окну привязаны торговые сигналы вы действительно хотите закрыть окно. Что и где надо написать чтобы появился в углу красный робот по нажатию превращающийся в зелёного. Пока я понял это просто индикатор сигналы внутри скрипта есть но они не выводятся. И ещё один вопрос выполнение по условиям пишется так или нет if {1&&2&&3)
25
« on: 23.11.2013, 08:15:42 »
#samewindow #line 0 dot green #line 1 dot green #line 2 dot gray #line 3 dot blue #line 4 dot red
extern period = 22; extern shift = 0.1;
var entry_max = 0; var entry_min = 0; var exit_max = 0; var exit_min = 0; var trend = 0;
function init() { setInitCandles(period); }
function calc() { line[0] = MovAvg(ind_ema, period, pt_close);
exit_max = line[0][0]; exit_min = line[0][0]; line[1][0] = exit_max; line[2][0] = exit_min;
entry_max = line[0][0] * (1 + shift/100); entry_min = line[0][0] * (1 - shift/100); line[3][0] = entry_max; line[4][0] = entry_min;
if (trend != 1 and high[0] > line[3][-1]) { signal::alert("Покупка: по " + getSecName() + " цена пересекла верхнюю границу конверта снизу вверх."); trend = 1; }
if (trend != -1 and low[0] < line[2][-1]) { signal::alert("Продажа: по " + getSecName() + " цена пересекла нижнюю границу конверта сверху вниз."); trend = -1; } }
Почему возникает это сообщение Line 1: Встретился неожиданный символ в макросе
26
« on: 23.11.2013, 08:10:59 »
#samewindow #line 0 solid red #line 1 dashed #line 2 dashed extern period = 9; extern Multiplier = 9; static Price = 0; static AvgPrice = 0; static vATR = 0; static Up = 0; static Down = 0; static Dir = 0; static PrevUp = 0; static PrevDown = 0; static PrevDir = 0; static vTrend = 0; function init() { setInitCandles(period); } function calc() { Price = close[0]; vATR = IndRef("atr", period)[0]; vTrend = 0; PrevUp = Up; PrevDown = Down; PrevDir = Dir; AvgPrice = (high[0] + low[0]) / 2; Up = AvgPrice + Multiplier * vATR; Down = AvgPrice - Multiplier * vATR; if (Price > PrevUp) { Dir = 1; } if (Price < PrevDown) { Dir = -1; } if (Dir > 0 && Down < PrevDown) { Down = PrevDown; } if (Dir < 0 && Up > PrevUp) { Up = PrevUp; } if (Dir > 0 && PrevDir < 0) { Down = AvgPrice - Multiplier * vATR; } if (Dir < 0 && PrevDir > 0) { Up = AvgPrice + Multiplier * vATR; } if (Dir == 1) { vTrend = Down; } if (Dir == -1) { vTrend = Up; } line[0][0] = vTrend; // установка сигналов по условиям if (Dir > 0 && PrevDir <= 0) { signal::alert("Покупка: по " + getSecName() + " цена пересекла границу снизу вверх."); } if (Dir < 0 && PrevDir >= 0) { signal::alert("Продажа: по " + getSecName() + " цена пересекла границу сверху вниз."); } } Почему возникает следующая ошибка Line 3: синтаксическая ошибка, неожиданный неопознанная ошибка, ожидается function или var или extern или TOK_STATIC Где на сайте транзака можно скачат эту дллку Библиотека SciLexer.dll не обнаружена. Дополнительные функции редактирования будут недоступны. Рекомендуем скачать этот файл с сайта http://transaq.ru
27
« on: 19.11.2013, 22:00:15 »
Вопрос к тем кто пишет ATF. А он вообще для кого пишется для пользователя или чтобы программистам было чем занятся. Мне нравится Транзак, но видимо придётся переходить на Квик. Язык Луа на котором можно написать скрипт во первых имеет меньше ошибок во вторых более удобен к применению. Имеет хрошо задокументированные функции. Есть обучающие видео по написанию скриптов как для Квика так и просто для игр. Выложены бесплатные скрипты.В ATF же кроме того что полно ошибок ещё и информацию приходится вытягивать клещами. Прошу ответить не формальной отпиской, что времени не хватает. Кроме это поставьте вопрос перед руководством об организации платных курсов по изучению ATF и снимите видео как написать простейший скрипт, как тестировать , как избежать характерных ошибок.
28
« on: 24.10.2013, 07:15:28 »
Подскажите есть ли курсы очные или онлайн программированию на АТФ.
29
« on: 07.07.2013, 13:15:00 »
Прошу помочь мне как новичку. Пытался сделать сам не получается. Нужно на гистограмме МАСД после локального экстремума появляется сообщение о покупке или продаже. То есть сначала проверка если i<i-1 а i-1>i-2 и выполняется условие i-1>i на константу появляется сигнал ПРОДАВАТЬ Гистограмма выведена на график в читаемом масштабе чтобы было видно что сигнал появился на 3 возвышающемся или снижающемся столбике.
30
« on: 07.07.2013, 13:04:04 »
Скажите пожалуйста почему этот скрипт продаёт и покупает
#line 0 solid red #line 1 solid green function calc() { line[0] = MovAvg(ind_ema, 9, pt_close ); } function onNewCandle() { if(line[0][-1]<line[0][-2]) and (line[0][-2]>line[0][-3]){ trade_action::buy(25, ::lots,close*1.01);} if(line[0][-1]>line[0][-2]) and (line[0][-2]>line[0][-3]){ trade_action::sell(25, ::lots,close*0.99);} } а аналогичный
#line 0 solid red #line 1 solid green function calc() { line[0] = MovAvg(ind_ema, 9, pt_close ); } function onNewCandle() { if(line[0][-1]<line[0][-2]) and (line[0][-2]>line[0][-3]){ signal::alert("Покупай!");} if(line[0][-1]>line[0][-2]) and (line[0][-2]>line[0][-3]){ signal::alert("Продавай!");} } сигналы не подаёт
|