Автор |
Сообщение |
Zmiter
Зарегистрирован: 24.08.2013
Сообщения: 3
|
Добрый день!
Нужно прогнать торговую стратегию руками на разных тикерах. Автоматический анализ не подходит - только глазами и руками. Использую замечательную функцию 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 Отличный код - спасибо! Нужно почти такое же, только чтобы сделки брались не из текстового файла, а рисовались пользователем прямо на графике.
Ну а если по нарисованным сделкам можно было бы собирать статистику (суммарный результат в пунктах, количество сделок, кол-во тейков и лосей и т.д.), любым способом - на график или в файл - то это было бы просто великолепно!
Например:
Как я рисую сейчас
Как хотелось бы:
Люди добрые, подскажите, пожалуйста, как это сделать? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Zmiter
Зарегистрирован: 24.08.2013
Сообщения: 3
|
000 писал(а): |
http://www.amibroker.com/kb/2006/05/06/discretionary-equity/ |
спасибо, это я уже вчера пробовал
Как я понял, это не совсем то, что нужно, но тут можно посмотреть принцип. К сожалению, я только начинаю разбираться в AFL, и вообще никогда не программировал, поэтому это мне до подгонки этого кода под себя, как до Луны.
Но у меня даже этот готовый код не работает правильно - эквити остается неизменной, стрелки все на одном уровне...хотя 1000% все сделал по инструкции.
Как можно это переделать под мои нужды? Был бы очень благодарен |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Zmiter
Зарегистрирован: 24.08.2013
Сообщения: 3
|
Кстати, вот еще нечто похожее:
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
|
В общем так.
1. Код Томаша для тестирования в ручном режиме безусловно работает.
Там используется функция Equity()
e = Equity( 1, 0 );
Она фактически запускает тестер и у него берет информацию об эквити. Т.е. на работу этой функции влияют настройки АА. В данном конкретном случае у тебя в тестере выставлено 10000 денег, а RTS стоит 133000. Разумеется 10000 никак не хватает для покупки даже одного лота, вот эквити и не меняется.
Что касается статистики. Ее можно собрать только прогнав полноценный тест в АА. Что тут можно придумать. Можно чуток модернизировать код Томаша, чтобы при нажатии купить/продать и т.д. эти сделки записывались в фаил, а уж потом этот фаил засунуть в ЭТОТ код и сделать полноценный тест. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
asdby
Зарегистрирован: 31.10.2009
Сообщения: 7
|
На форуме Форексклуба в ветке Amibroker Mechanic выкладывал свой вариант TestManual. Я его доработал немного. Посмотри может подойдет.
Забыл утром присоединить. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|