Виктор 2007
New member
Как посчитать Еквити по нескольким бумагам и нескольким системам?
Дело в том, что систему я подстраиваю под каждую бумагу. А эта хрень, как я понял, одну систему гоняет на разных бумагахПо нескольким бумагам просто, в установках бэктеста ставишь "use filter" выбираешь там какой нить watch list, копируешь туда нужные бумаги, в тексте системы добавляешь positionsize=-25 (для 4-х бумаг) и тестишь.
Ну это уже что-то. Спасибо.Для нескольких систем сложнее, но возможно.
Выполняем следующие манипуляции:
Допустим есть три системы
Прогоняем тест 1-й системы, в списке символом видим тикер ~~~EQUITY, щелкаем по нему правой кнопкой мыши, заходим в information, меняем имя например на ~EQ1_2007, меняем Group и Market, на отличный! от 253, например 251
Теперь перезапускаем! Ами, делаем то же для 2-й системы, создаем тикер ~EQ2_2007
Повтрояем для 3-й системы, создаем ~EQ3_2007
Добавляем индикатор:
eq1=Foreign( "~EQ1_2007", "C" );
dr1 = eq1 - Highest(eq1);
drpercent1 = ((eq1 - Highest(eq1))/(Highest(eq1)/100));
drlow1=Lowest(drpercent1);
z1=IsEmpty(eq1);
z2=IIf(z1<1,1,0);
z3=0;
z4=ExRem(z2,z3);
eqfirst1=LastValue( ValueWhen( z4, eq1 ) );
prof1=(eq1-eqfirst1)/(eqfirst1/100);
Plot(prof1,"Profit1%",colorRed, 4);
eq2=Foreign( "~EQ2_2007", "C" );
dr2 = eq2 - Highest(eq2);
drpercent2 = ((eq2 - Highest(eq2))/(Highest(eq2)/100));
drlow2=Lowest(drpercent2);
eqfirst2=LastValue( ValueWhen( z4, eq2 ) );
prof2=(eq2-eqfirst2)/(eqfirst2/100);
Plot(prof2,"Profit2%",colorWhite, 4);
eq3=Foreign( "~EQ3_2007", "C" );
dr3 = eq3 - Highest(eq3);
drpercent3 = ((eq3 - Highest(eq3))/(Highest(eq3)/100));
drlow3=Lowest(drpercent3);
eqfirst3=LastValue( ValueWhen( z4, eq3 ) );
prof3=(eq3-eqfirst3)/(eqfirst3/100);
Plot(prof3,"Profit3%",colorBlue, 4);
///////////////////////////////////////////////////////
g=(prof1+prof2+prof3)/3;
eq=(eq1+eq2+eq3)/3;
dr = eq - Highest(eq);
drpercent = ((eq - Highest(eq))/(Highest(eq)/100));
drlow=Lowest(drpercent);
Col=IIf(drpercent<0,19,27);
Plot(drpercent,"Drawdown%",colorDarkRed,styleArea);
Plot(drlow,"MaxDD%",colorGrey50,styleThick);
Plot(g,"Profit%",Col, styleArea);
///END///
Equity отображается в процентах. У меня версия Ами 4.5, возможно в более новых версиях это можно сделать проще.
А ясно, я просто не подгоняю системы под конкретные бумаги. Тогда используй другую хрень, смотри вышеДело в том, что систему я подстраиваю под каждую бумагу. А эта хрень, как я понял, одну систему гоняет на разных бумагахПо нескольким бумагам просто, в установках бэктеста ставишь "use filter" выбираешь там какой нить watch list, копируешь туда нужные бумаги, в тексте системы добавляешь positionsize=-25 (для 4-х бумаг) и тестишь.
У меня почему-то не удается создать (взять существующую) систему, которая хорошо работает на всех бумагах. Если система не дает 100% в год(т.к. в реале будет ниже), то она мне не интересна. Посему вопрос. Вы берете готовые системы или мудрите свои?А ясно, я просто не подгоняю системы под конкретные бумаги. Тогда используй другую хрень, смотри вышеДело в том, что систему я подстраиваю под каждую бумагу. А эта хрень, как я понял, одну систему гоняет на разных бумагахПо нескольким бумагам просто, в установках бэктеста ставишь "use filter" выбираешь там какой нить watch list, копируешь туда нужные бумаги, в тексте системы добавляешь positionsize=-25 (для 4-х бумаг) и тестишь.![]()
версия 4.8Любопытно, а я что то с этим AddToComposite разбирался, но только запутался
SV, а у тебя какая версия АМИ?
Что то у меня операторы типа _SECTION_BEGIN("Settings"); не проходят
Да некисло так нужно покодитьЕсть еще способ, пожалуй более "кашерный":
1) создаем 2 индикатора;
...
А все потому что лень вручную каждый раз все делать... лень двигатель мозгов/прогрессаДа некисло так нужно покодитьЕсть еще способ, пожалуй более "кашерный":
1) создаем 2 индикатора;
...![]()