AmiBroker

  • Автор темы cm_s
  • Дата начала
К

кунак

Гость
мех, хэлп плз, сам в программировании не очень (
Задачка такая - в каждый день какие-то акции растут, какие-то падают. Так вот, как посчитать количество выросших и упавших, к примеру, на мисекс? Что-то типа эксплорера.
т.е. условие :
С1 = Close > Ref(Close,-1);
C2 = Close < Ref(Close,-1);
но как суммировать по всей базе акций?
 

mehanizator1

New member
мех, хэлп плз, сам в программировании не очень (
Задачка такая - в каждый день какие-то акции растут, какие-то падают. Так вот, как посчитать количество выросших и упавших, к примеру, на мисекс? Что-то типа эксплорера.
т.е. условие :
С1 = Close > Ref(Close,-1);
C2 = Close < Ref(Close,-1);
но как суммировать по всей базе акций?
не, про такие дела ничего сказать не могу... не доводилось.
 

Alternik

New member
мех, хэлп плз, сам в программировании не очень (
Задачка такая - в каждый день какие-то акции растут, какие-то падают. Так вот, как посчитать количество выросших и упавших, к примеру, на мисекс? Что-то типа эксплорера.
т.е. условие :
С1 = Close > Ref(Close,-1);
C2 = Close < Ref(Close,-1);
но как суммировать по всей базе акций?
А для чего тебе это?=) Не уж то индикатор хочешь какой-нибудь сделать??
 
К

кунак

Гость
А для чего тебе это?=) Не уж то индикатор хочешь какой-нибудь сделать??
ага, смысл таков - отслеживая наряду с общим показателем индекса скажем по мисексу, посмотреть соотношение количество растущих/падающих акций, так сказать, можно ли сантимент сообщества определить. Логика такова - если вчера был рост по индексу, то соотношение рост/падение должно показать насколько широк спектр растущих - ведь в расчет индекса входит ограниченное количество чипсов, а качество роста можно было бы определить по количеству участвовавших в росте. Ну, и тенденция этого соотношения.
Кстати, есть простенький показатель нью хай/лоу по рынку за год к примеру, так вот он отлично отслеживает новые хаи/лоу по индексу - был ли хай за счет всего рынка, или же за счет только входивших в него наиболее ликвидных чипсов - т.е. рост спекулятивен или нет
 

White_Horse

New member
У меня проблема странная возникла. Начал разбиратся с ами, пару раз потестировал прилагающуюся в пример систему - все нормально, рисовалась эквити как одиночная так и для портфеля, но затем почему то эквити перестала рисоватся вообще.
Выдает вот такое сообщение:

Кто нибудь сталкивался с таким?
 

White_Horse

New member
Странно, эквити вытягиваемая как индикатор из вкладки сбоку вполне себе рисуется, а запрашиваемая через меню тестирования системы - выдает вышеуказанное окошко...
 

White_Horse

New member
Извиняюсь за еще один глупый вопрос, но я в программировании не спец. АД дает апи, но я никак не могу понять как запустить управление апи из-под амиброкера. Может кто нибудь подскажет простейший пример как при выполнении какого-нибудь условия запускается какой-нибудь скрипт, ну к примеру получение информации о текущей версии терминала. Я прочитал хелп но что-то все равно не получается.

//это как я понимаю запуск скрипта
#include "adlite.h"
#include "adlite_i.c
CoInitialize(NULL);
IAlfaDirect *AD;
CoCreateInstance(CLSID_AlfaDirect, NULL, CLSCTX_LOCAL_SERVER,
IID_IAlfaDirect, (void**)&AD);

//это команда получающая текущую версию терминала
HRESULT get_Version(BSTR *Value);
//а это если я правильно понял конец
AD->Release();
CoUninitialize();

А вот как все это запустить из под ами и получить в ами запрошенные данные? Был бы очень благодарен если кто-нибудь подскажет.

Добавлено:

Предыдущее это как я понимаю надо компилировать скрипт на с++ компиляторе и вызывать через AFL. А если использовать визуал бэйсик можно обойтись без компилятора. Правда все равно почему то этот скриптинг хост капризничает, можно через него вообще по API достучатся?

Гм, со школы с программированием дела не имел (не считая метастока :)) забыл вообще о существовании компиляторов...

Добавлено еще раз:

Ура!!! Все оказывается не просто, а супер просто!
Задается ком объект и вызывается его функция, например

myobj = CreateObject("ADLite.AlfaDirect");
myobj.CreateStopOrder(все что нужно по мануалу, все в "", дата окончания в формате "01.12.06 0:00");

:)
 

Andres

New member
Всех с наступающим.

Может кто знает как реализовать в амиброкере такую возможность:

Нужно следующее, например открыт лонг, изначально есть трэйлинг стоп 5%, и при достижении определенной прибыли, допустим +10%, нужно чтобы трэйлинг стоп стал 3%.

Или проще, как определить сколько баров назад был вход в последнюю сделку, учитывая что сигналы Buy выдаются и во время лонга,
т.е. barssince (buy) не работает.

Что то вожусь и никак не получается
 

mehanizator1

New member
Всех с наступающим.

Может кто знает как реализовать в амиброкере такую возможность:

Нужно следующее, например открыт лонг, изначально есть трэйлинг стоп 5%, и при достижении определенной прибыли, допустим +10%, нужно чтобы трэйлинг стоп стал 3%.

Или проще, как определить сколько баров назад был вход в последнюю сделку, учитывая что сигналы Buy выдаются и во время лонга,
т.е. barssince (buy) не работает.

Что то вожусь и никак не получается
есть функция buy=exrem(buy,sell), которая убирает лишние сигналы, будет только один сигнал бай после селл.
 

Andres

New member
Да, спасибо, но все равно возникает проблема.
Например был сигнал buy, вошли в сделку, потом выходим по стопу, профит или трэйлинг, затем опять поступает сигнал buy, снова входим, а сигнала sell с момента первого входа все еще не было, тогда barssince(buy) будет показывать на самый первый buy.
 

Andres

New member
По моему нашел выход

Пример из описания:

Using Equity( 1 ) evaluates stops and writes BACK
signals to sell/cover arrays. Equity(1) also removes
all extra signals.

Depending on kind of the stop various values
are written back to sell/cover array to enable you
to distinguish if given signal was generated by regular
rule or by stop.

1 - regular exit
2 - max. loss
3 - profit target
4 - trailing
5 - ruin stop
6 - n-bar stop

... your rules...
ApplyStop( stopTypeTrail, stopModePercent, 10, True );
Equity( 1 );
WriteIf( sell == 1, "Regular exit",
WriteIf( sell == 4, "Trailing stop", "" ) );


После нового года попробую
 

mehanizator1

New member
Да, спасибо, но все равно возникает проблема.
Например был сигнал buy, вошли в сделку, потом выходим по стопу, профит или трэйлинг, затем опять поступает сигнал buy, снова входим, а сигнала sell с момента первого входа все еще не было, тогда barssince(buy) будет показывать на самый первый buy.
ну если так то наверное... я готовыми стопами не пользуюсь, свои определяю.
 
Your email address will not be publicly visible. We will only use it to contact you to confirm your post.
Сверху