Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Настройки тестера Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
Shara



Зарегистрирован: 11.02.2013
Сообщения: 30
Откуда: местный

СообщениеДобавлено: Ср Фев 20, 2013 10:21 am Ответить с цитатой Вернуться к началу

Всем привет. 1.Уважаемые профи, в учебнике по АМИ есть настройка "Настройка символов" в окне Information. В ней выставляю Маркет2(по умолчанию стоит НАЙС) и Round Lot Size, они сохраняется. Round Lot Size как я понял - количество акций в лоте. Например в Газпроме 10 шт. А при выставлении Tick size 0,01 для Газпрома, настройка не сохраняется почему то. Как сохранить?
2.После теста и оптимизации акции на 15 мин. графике, хочу протестить на 1 час. графике. Как быстро сменить время свечи для теста? И как быстро сменить интервал истории тестирования? Например тестировал на истории за 3 года. Хочу за 1 последний год. В Велслабе есть дата панель, она на виду. Стоит там изменить таймфрейм или интервал, как тестер сразу пересчитывает все по новому. В АМИ где это все быстро сменить?
3. После теста, как открыть график с сделками, что бы стрелочками было показаны сделки?
Извените за детские вопросы, в учебнике не нашел?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Ср Фев 20, 2013 11:19 pm Ответить с цитатой Вернуться к началу

Цитата:
при выставлении Tick size 0,01 для Газпрома, настройка не сохраняется почему то. Как сохранить?

Вместо запятой пиши точку (не 0,01, а 0.01)
Цитата:
2.После теста и оптимизации акции на 15 мин. графике, хочу протестить на 1 час. графике. Как быстро сменить время свечи для теста? И как быстро сменить интервал истории тестирования? Например тестировал на истории за 3 года. Хочу за 1 последний год. В Велслабе есть дата панель, она на виду. Стоит там изменить таймфрейм или интервал, как тестер сразу пересчитывает все по новому. В АМИ где это все быстро сменить?

В Ами так нельзя. И фрейм и интервал изменяются в настройках и после этого надо делать новый тест.
Цитата:
3. После теста, как открыть график с сделками, что бы стрелочками было показаны сделки?

Из учебника
Цитата:
Можно вывести на график стрелки, отмечающие сигналы и сделки системы. Для этого надо щелкнуть правой кнопкой мыши на лист сделок и выбрать один из пунктов.

Это тут http://www.amisite.ru/begin/bk_test1sumb.htm Почти в конце.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Shara



Зарегистрирован: 11.02.2013
Сообщения: 30
Откуда: местный

СообщениеДобавлено: Пт Фев 22, 2013 5:06 pm Ответить с цитатой Вернуться к началу

Спасибо за ответы. Я вот тут почитал несколько стратегий, и пришел к такому выводу. Что одну и ту же стратегию можно записать в разные формулы AFL и по размеру строчек, и на взгляд они выгледят по другому. Еще не разобрался почему, но примерно: можно написать по простому и через масивы. Для примера напишите по разному одно и тоже, в таком простом примере. Если цена свечи М5 закрылась выше предыдущей М5 и ЕМА ниже свечи предыдущей то лонг, стоп эта же свеча - допустим -2% от размера депо. В шорт наоборот. И который код легче(меньше) писать и шустрей будет работать? Только пожалуста с коментариями каждого шага. Я так понял что коменты должны быть одинаковые у обоих кодов, или не так?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пт Фев 22, 2013 5:48 pm Ответить с цитатой Вернуться к началу

Shara писал(а):
Спасибо за ответы. Я вот тут почитал несколько стратегий, и пришел к такому выводу. Что одну и ту же стратегию можно записать в разные формулы AFL и по размеру строчек, и на взгляд они выгледят по другому.

Совершенно верно. Можно одно и тоже написать множеством разных способов.
Типа 3*3 = 3^2 = 3+3+3

Систему с комментами напишу в воскресенье. Сегодня и завтра недосуг.
Laughing

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Фев 25, 2013 12:10 am Ответить с цитатой Вернуться к началу

Сегодня лень писать много.
Пока только один код.
Это самый быстрый и правильный вариант. Любой алгоритм сначала надо попытаться описать так.
Код:

SetTradeDelays(0, 0, 0, 0); // Задержка исполнения сигнала
// Например. Если мы дождались закрытия дня и приняли решение купить завтра утром, то это задержка 1 (решили сейчас а купили на следующем баре)

BuyCond1 = C > Ref(C, -1); // Первое условие покупки. Цена закрытия больше цены закрытия предыдущей свечи. Тут вместо BuyCond1 можно использовать любое удобное имя.
BuyCond2 = Ref(L > EMA(C, 10), -1); // Второе условие покупки. EMA по закрытию с периодом 10 ниже минимума. На предыдущей свече.

Buy = BuyCond1 AND BuyCond2; // Покупка. Оба условия вместе
BuyPrice = C; // Цена покупки. В момент закрытия свечи увидели, что есть условия на вход и немедленно вошли.

// Размер сделки не задаем. Будем торговать на все доступные деньги.

ShortCond1 = C < Ref(C, -1);
ShortCond2 = Ref(H < EMA(C, 10), -1);
Short = ShortCond1 AND ShortCond2;
ShortPrice = C;

// Условие выхода не по стопу не задано. Вероятно переворот при противоположном сигнале.
Sell = Short;
Cover = Buy;

// Стоп
ApplyStop( stopTypeLoss, stopModePercent, 2, ExitAtStop = 1, volatile = False, ReEntryDelay = 0);
// Стоп лосс, задается в процентах, 2%, выходить немедленно по цене стопа, пока открыта сделка стоп не двигать,
// после исполнения стопа запретить последующий вход на протяжении 0 баров.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Shara



Зарегистрирован: 11.02.2013
Сообщения: 30
Откуда: местный

СообщениеДобавлено: Пн Фев 25, 2013 7:04 pm Ответить с цитатой Вернуться к началу

Спасибо большое. С первого взгляда, как то трудно. А быстрый, в смысле написания или исполнения. Олег, если не лень будет, напиши плиз тоже самое, только по простому, как в этом коде:
Buy = Cross( EMA( Close, 5 ) , EMA( Close, 40 ) );
Sell = Cross( EMA( Close, 40 ), EMA( Close, 5 ) ); с этими же коментариями.

Я так понял что твой код сложный(для восприятия новичка) и написан через масив. Извени если туплю.
Не подскажете, как зарегиться на сайте АМИ, или надо АМИ купить?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Фев 25, 2013 8:33 pm Ответить с цитатой Вернуться к началу

Это как раз по простому. И писать быстро и работает быстро.
Можно написать так
Код:
Buy = C > Ref(C, -1) AND Ref(L > EMA(C, 10), -1);

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Shara



Зарегистрирован: 11.02.2013
Сообщения: 30
Откуда: местный

СообщениеДобавлено: Вт Фев 26, 2013 6:48 pm Ответить с цитатой Вернуться к началу

Дак вроде в первом коде:

SetTradeDelays(0, 0, 0, 0);
BuyCond1 = C > Ref(C, -1);
BuyCond2 = Ref(L > EMA(C, 10), -1);
Buy = BuyCond1 AND BuyCond2;
BuyPrice = C;
ShortCond1 = C < Ref(C, -1);
ShortCond2 = Ref(H < EMA(C, 10), -1);
Short = ShortCond1 AND ShortCond2;
ShortPrice = C;
Sell = Short;
Cover = Buy;
ApplyStop( stopTypeLoss, stopModePercent, 2, ExitAtStop = 1, volatile = False, ReEntryDelay = 0);

Строчек по больше будет, чем во втором:

Buy = C > Ref(C, -1) AND Ref(L > EMA(C, 10), -1);

Верхний код для меня пока что сложный. Стоит изучать AFL Визард, или только время потеряешь? В мою башку не лезет программирование.
Олег напиши пожалуста как время будет, второй код с коментариями. Мне для сравнения нужно.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Вт Фев 26, 2013 7:08 pm Ответить с цитатой Вернуться к началу

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

На счет визарда не знаю. Будет ли с ним проще... Там не по русски. Если с языком проблем нет, то изучай.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Shara



Зарегистрирован: 11.02.2013
Сообщения: 30
Откуда: местный

СообщениеДобавлено: Вт Фев 26, 2013 7:57 pm Ответить с цитатой Вернуться к началу

А почему в визарде написано незарегестрирован-триал версия? Его отдельно нужно крякать? Для него реально ключь найти?
Если для тебя не долго, напиши пожалуста второй код. Я их когда сравню, то пойму наверное, что мне легче. Не подскажешь сайт какой нибудь забугорный, где коды есть с описанием. С примерами легче понять для меня. То что не по русски не страшно, через гугл разберусь как нибудь.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Вт Фев 26, 2013 8:29 pm Ответить с цитатой Вернуться к началу

Ладно напишу.
Коды смотри тут
http://www.amibroker.com/kb/
http://www.amibroker.org/userkb/

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Вт Фев 26, 2013 8:37 pm Ответить с цитатой Вернуться к началу

Цену на визард можно посмотреть ТУТ
Про бесплатный вариант мне ничего не известно.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Shara



Зарегистрирован: 11.02.2013
Сообщения: 30
Откуда: местный

СообщениеДобавлено: Вт Фев 26, 2013 9:23 pm Ответить с цитатой Вернуться к началу

Олег спасибо большое.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Чт Фев 28, 2013 12:11 am Ответить с цитатой Вернуться к началу

Код:

// В предыдущем примере было сделано массивами. Теперь сделаем в цикле
// Если там рассматривались сразу все цены, то тут идем последовательно
// от крайнего левого бара до крайнего правого


MAE = EMA(C, 10); // просто присваиваем массиву MAE значение мувинга.
// это надо для того, чтобы можно было взять значение на любом баре.
// например на баре 5 значение мувинга MAE[4]. Счет баров начинается с 0
pos = EntryPrice = 0; // просто задаем переменные pos для запоминания позиции системы, EntryPrice - цена входа в позицию

for( i = 11; i < BarCount; i++ ) // цикл. Тут и изменяется от 11 до BarCount(кол-во баров на графике).
// от 11 потому, что раньше бара номер 10 мувинг еще не посчитан
{
  if(pos == 0) // если нет открытых позиций. Выполняется то, что в следующих {} скобках
  {
    if(C[i] > C[i-1] AND L[i-1] > MAE[i-1]) // если закрытие больше предыдущего и предыдущий минимум
    // больше предыдущего значения мувинга то
    {
      Buy[i] = 1;
      pos = 1; // запомнили, что система в лонге
      BuyPrice[i] = EntryPrice = C[i]; // задали цену входа и запомнили ее
    }
    else if(C[i] < C[i-1] AND H[i-1] < MAE[i-1]) // проверяем условия для шорта
    {
      Short[i] = 1;
      pos = -1; // запомнили, что система в шорте
      ShortPrice[i] = EntryPrice = C[i]; // задали цену входа и запомнили ее
    }
  }
  else if(pos == 1) // если система в лонге
  {
    if(L[i] < EntryPrice*0.98) // проверка стопа. Если цена опустилась на 2% от цены входа, то стоп.
    {
      Sell[i] = 1;
      pos = 0; // теперь нет открытых позиций
      ShortPrice[i] = EntryPrice*0.98;
    }
    if(C[i] < C[i-1] AND H[i-1] < MAE[i-1]) // проверяем условия для шорта
// может так случиться, что сработал стоп и потом возникли условия для шорта
    {
      if(pos == 1) // стоп не сработал
      {
        Short[i] = Sell[i] = 1;
        pos = -1; // запомнили, что система в шорте
        ShortPrice[i] = SellPrice[i] = EntryPrice = C[i]; // задали цену выхода, входа и запомнили ее
      }
      else if(pos == 0) // стоп сработал
      {
        Short[i] = 1;
        pos = -1; // запомнили, что система в шорте
        ShortPrice[i] = EntryPrice = C[i]; // задали цену входа и запомнили ее
      }
    }   
  }
  else if(pos == -1) // если система в шорте
  {
... // аналогично как для лонга
  }


_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Shara



Зарегистрирован: 11.02.2013
Сообщения: 30
Откуда: местный

СообщениеДобавлено: Чт Фев 28, 2013 8:02 pm Ответить с цитатой Вернуться к началу

Спасибо. С первого взгляда первый код вроде полегче, будет. Попробую их сравнить без коментариев. А правильно в этом коде я добавил строчки для оптимизации средней ЕМА и стопа для тестера :
SetTradeDelays(0, 0, 0, 0);
BuyCond1 = C > Ref(C, -1);
BuyCond2 = Ref(L > EMA(C, 10), -1);

EMA = Optimize("EMA", 10, 1, 200, 1); //оптимизировать EMA10 от 1 до 200 с шагом 1

Buy = BuyCond1 AND BuyCond2;
BuyPrice = C;
ShortCond1 = C < Ref(C, -1);
ShortCond2 = Ref(H < EMA(C, 10), -1);
Short = ShortCond1 AND ShortCond2;
ShortPrice = C;
Sell = Short;
Cover = Buy;

stopModePercent = Optimize("stopModePercent", 2, 0,5, 4, 0,5); //оптимизировать StopLoss 2% от 0,5 до 4 с шагом 0,5%

ApplyStop( stopTypeLoss, stopModePercent, 2, ExitAtStop = 1, volatile = False, ReEntryDelay = 0);

Я так понял строчка с параметром Optimize, пишется перед строчкой, что мы хотим оптимизировать.
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen