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



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

СообщениеДобавлено: Вс Авг 25, 2013 2:02 pm Ответить с цитатой Вернуться к началу

Добрый день!

Нужно прогнать торговую стратегию руками на разных тикерах. Автоматический анализ не подходит - только глазами и руками. Использую замечательную функцию Bar Replay. Сделки (точка входа, стоп, тейк) рисую штатными графическими средствами - Trendline, Arrow и Text tool для указания цены и размеров стопа и тейка в пунктах. Все это что очень неудобно, долго и дает только графическую информацию.

Вопрос: реально ли сделать так, чтобы на график можно было наносить сделку (в режиме Bar Replay или просто на историческом графике)? Т.е. чтобы при выборе точки входа на графике автоматом появлялся, например, shapeUpTriangle, проставлялась цена входа и можно было нанести стоп и тейк-профит по тому же принципу. Конечно, было бы удобно делать это мышью.

Нашел здесь похожую тему http://amisite.ru/phpBB2/viewtopic.php?t=165&highlight=accont+%F1%E4%E5%EB%EA%E8+++%E3%F0%E0%F4%E8%EA%E5 Отличный код - спасибо! Нужно почти такое же, только чтобы сделки брались не из текстового файла, а рисовались пользователем прямо на графике.

Ну а если по нарисованным сделкам можно было бы собирать статистику (суммарный результат в пунктах, количество сделок, кол-во тейков и лосей и т.д.), любым способом - на график или в файл - то это было бы просто великолепно!

Например:
Как я рисую сейчас
Image

Как хотелось бы:
Image

Люди добрые, подскажите, пожалуйста, как это сделать?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Авг 25, 2013 5:02 pm Ответить с цитатой Вернуться к началу

http://www.amibroker.com/kb/2006/05/06/discretionary-equity/

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



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

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

000 писал(а):
http://www.amibroker.com/kb/2006/05/06/discretionary-equity/

спасибо, это я уже вчера пробовал
Как я понял, это не совсем то, что нужно, но тут можно посмотреть принцип. К сожалению, я только начинаю разбираться в AFL, и вообще никогда не программировал, поэтому это мне до подгонки этого кода под себя, как до Луны.

Но у меня даже этот готовый код не работает правильно - эквити остается неизменной, стрелки все на одном уровне...хотя 1000% все сделал по инструкции.
Image

Как можно это переделать под мои нужды? Был бы очень благодарен
Посмотреть профиль Отправить личное сообщение
Zmiter



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

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

Кстати, вот еще нечто похожее:

http://www.amibroker.com/library/detail.php?id=1217&hilite=ParamTrigger


Код:


SetBarsRequired(-1,1);

lvBar = Status( "LastVisibleBar" );
lvbar = Max(0, Min(Status( "LastVisibleBar" ),BarCount-1));

Vnbuy   = Nz(StaticVarGet("vnbuy"));
vnsell  = Nz(StaticVarGet("vnsell"));
Vnbuyp  = Nz(StaticVarGet("vnbuyp"));
vnsellp = Nz(StaticVarGet("vnsellp"));

Vnshort = Nz(StaticVarGet("Vnshort"));
vncover = Nz(StaticVarGet("vncover"));
Vnshortp= Nz(StaticVarGet("vnshortp"));
vncoverp= Nz(StaticVarGet("vncoverp"));

inbuy = Nz(StaticVarGet("inbuy"));
inshort = Nz(StaticVarGet("inshort"));

profit = Nz(StaticVarGet("profit"));

procedure CloseTrade() {
global vnsell;
global vnsellp;
global vnbuy;
global vnbuyp;
global Vnshort;
global Vncover;
global Vnshortp;
global Vncoverp;
global inbuy;
global inshort;
global profit;

    if (inbuy) {
    inbuy = 0;
    vnsell[lvBar] = 1;
    vnsellp = C[Lvbar];
    profit = profit + vnsellp-Vnbuyp;
 
    StaticVarSet("vnsell", Vnsell);
    StaticVarSet("vnsellp", Vnsellp);
    StaticVarSet("inbuy", 0);
    StaticVarSet("profit", profit);
    } else if (inshort) {
    inshort = 1;
    vncover[lvBar] = 1;
    vncoverp = C[Lvbar];
    profit = profit + vnshortp - vncoverp;
 
    StaticVarSet("vncover", vncover);
    StaticVarSet("vncoverp", vncoverp);
    StaticVarSet("inshort", 0);
    StaticVarSet("profit", profit);
    }
}

mBuy = ParamTrigger("buy", "Buy");
if (mBuy){
  if (!inbuy && !inshort){
    inbuy = 1;
    vnbuy[lvBar] = 1;
    vnbuyp = C[Lvbar];
    StaticVarSet("vnbuy", Vnbuy );
    StaticVarSet("vnbuyp", Vnbuyp);
    StaticVarSet("inbuy", 1);
  } else {
    CloseTrade();
  }
}

mShort = ParamTrigger("Short", "Short");
if (mShort){
  if (!inbuy && !inshort){
    inshort = 1;
    vnshort[lvBar] = 1;
    vnshortp = C[Lvbar];
    StaticVarSet("vnshort", Vnshort);
    StaticVarSet("vnshortp", vnshortp);
    StaticVarSet("inshort", 1);
  } else {
    CloseTrade();
  }
}

reset = ParamTrigger("reset", "reset");
if (reset){
  vnbuy = 0;   vnsell = 0; vnshort  = 0; vncover  = 0;
  vnbuyp = 0; vnsellp = 0; vnshortp = 0; vncoverp = 0;
  inbuy = 0; inshort = 0; profit = 0;

  StaticVarSet("vnbuy", Vnbuy);
  StaticVarSet("vnbuyp", Vnbuyp);
  StaticVarSet("vnsell", Vnsell);
  StaticVarSet("vnsellp", Vnsellp);
  StaticVarSet("inbuy", 0);

  StaticVarSet("vnshort", Vnshort);
  StaticVarSet("vnshortp", vnshortp);
  StaticVarSet("vncover", vncover);
  StaticVarSet("vncoverp", vncoverp);
  StaticVarSet("inshort", 0);

  StaticVarSet("profit", profit);

}

setABArrays= ParamToggle("setABArrays", "on|off");
if (setABArrays == 0){
  Buy = vnbuy; Sell = vnsell; Short = vnshort; Cover = vncover;
  BuyPrice = vnbuyp; SellPrice = vnsellp; ShortPrice = vnshortp; CoverPrice =
vncoverp;
}

UProfit = 0;
if (inbuy){
  UProfit = C[lvbar] - Vnbuyp[Lvbar];
} else if (inshort){
  UProfit = Vnshortp[Lvbar] - C[lvbar];
}

printf("R profit: %g\n", profit);
printf("U profit: %g\n", UProfit);

PlotShapes(shapeSmallUpTriangle*Nz(Vnbuy),colorBrightGreen,   0, L, -10);
PlotShapes(shapeSmallDownTriangle*Nz(Vnsell),colorRed,   0, H, -10);
PlotShapes(shapeHollowSmallDownTriangle*Nz(Vnshort),colorRed,   0, H, -10);
PlotShapes(shapeHollowSmallUpTriangle*Nz(Vncover),colorBrightGreen,   0, L,
-10);

//Plot( C, "Close", colorBlack, styleNoTitle | ParamStyle("Style") | GetPriceStyle());


только этот код расставляет сигналы только на хаях или лоях последнегно видимого бара
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Авг 25, 2013 10:41 pm Ответить с цитатой Вернуться к началу

В общем так.
1. Код Томаша для тестирования в ручном режиме безусловно работает.
Там используется функция Equity()
e = Equity( 1, 0 );
Она фактически запускает тестер и у него берет информацию об эквити. Т.е. на работу этой функции влияют настройки АА. В данном конкретном случае у тебя в тестере выставлено 10000 денег, а RTS стоит 133000. Разумеется 10000 никак не хватает для покупки даже одного лота, вот эквити и не меняется.
Что касается статистики. Ее можно собрать только прогнав полноценный тест в АА. Что тут можно придумать. Можно чуток модернизировать код Томаша, чтобы при нажатии купить/продать и т.д. эти сделки записывались в фаил, а уж потом этот фаил засунуть в ЭТОТ код и сделать полноценный тест.

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



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

СообщениеДобавлено: Вт Авг 27, 2013 9:35 am Ответить с цитатой Вернуться к началу

На форуме Форексклуба в ветке Amibroker Mechanic выкладывал свой вариант TestManual. Я его доработал немного. Посмотри может подойдет.

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen