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



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

СообщениеДобавлено: Сб Мар 28, 2015 5:50 pm Ответить с цитатой Вернуться к началу

Все привет.
Помогите пожалуйста перебраться с велс лаба на амиброкер.
думал легко освою ами, оказалось как бы не так.

не понимаю базовых вещей в AFL:
Почему работает вот этот код?

Cond1 = Close > MA( Close, 3 );
Cond2 = Volume > Ref( Volume, -1 );
Buy = Cond1 AND Cond2;
Sell = High > 1.30;


Почему нет перебора свечек в цикле как в велс лаб? Они как то сами по себе крутятся или как?
Почему не объявляются переменные Cond1 Cond2 и почему у них нет типа? я как понял переменные вообще не объявляются?
На amisite.ru прочитал пару уроков по AFL, но очевидно этого мало, а справка на англ.языке.
Ни туториалов, ни видео, ни каких либо прочих уроков по AFL в инете не нашел.
Если есть у кого такие материалы или ссылки, или простого робота с комментариями в коде, поделитесь пожалуйста, иначе я никак не могу к нему подступиться.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Сб Мар 28, 2015 9:18 pm Ответить с цитатой Вернуться к началу

crn писал(а):
Все привет.
Помогите пожалуйста перебраться с велс лаба на амиброкер.
думал легко освою ами, оказалось как бы не так.

не понимаю базовых вещей в AFL:
Почему работает вот этот код?

Cond1 = Close > MA( Close, 3 );
Cond2 = Volume > Ref( Volume, -1 );
Buy = Cond1 AND Cond2;
Sell = High > 1.30;


Почему нет перебора свечек в цикле как в велс лаб? Они как то сами по себе крутятся или как?

Не совсем так, но для простоты можешь считать, что Перебор от крайней левой, до последней свечки присутствует изначально и его объявлять не надо.
crn писал(а):

Почему не объявляются переменные Cond1 Cond2 и почему у них нет типа? я как понял переменные вообще не объявляются?

Вообще не объявляются. В момент инициализации тип определяется автоматически.
crn писал(а):

На amisite.ru прочитал пару уроков по AFL, но очевидно этого мало, а справка на англ.языке.
Ни туториалов, ни видео, ни каких либо прочих уроков по AFL в инете не нашел.
Если есть у кого такие материалы или ссылки, или простого робота с комментариями в коде, поделитесь пожалуйста, иначе я никак не могу к нему подступиться.

Будут вопросы - спрашивай. Разберешься постепенно.

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



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

СообщениеДобавлено: Сб Мар 28, 2015 10:21 pm Ответить с цитатой Вернуться к началу

Спасибо за ответ!
Посмотреть профиль Отправить личное сообщение
fujis84



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

СообщениеДобавлено: Вс Мар 29, 2015 4:20 am Ответить с цитатой Вернуться к началу

crn писал(а):

Ни туториалов, ни видео, ни каких либо прочих уроков по AFL в инете не нашел.
Если есть у кого такие материалы или ссылки, или простого робота с комментариями в коде, поделитесь пожалуйста, иначе я никак не могу к нему подступиться.


чистая бессмыслица.
только один пример:
http://www.amibroker.com/guide/AFL.html
http://www.amibroker.de/guide/h_understandafl.html
http://amibroker.com/guide/a_userfunctions.html
http://www.amibroker.com/guide/a_language.html
http://www.amibroker.com/guide/a_mistakes.html
http://www.amibroker.com/kb/toc/
http://www.amibroker.org/userkb/

etc, etc
Посмотреть профиль Отправить личное сообщение
fujis84



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

СообщениеДобавлено: Вс Мар 29, 2015 4:58 am Ответить с цитатой Вернуться к началу

crn писал(а):
ни видео


ни видео?

http://www.amibroker.com/support.html
https://www.youtube.com/results?search_query=amibroker
etc

ты либо полностью тупой или абсолютно глупо.
Посмотреть профиль Отправить личное сообщение
fujis84



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

СообщениеДобавлено: Вс Мар 29, 2015 5:09 am Ответить с цитатой Вернуться к началу

crn писал(а):

Почему не объявляются переменные Cond1 Cond2 и почему у них нет типа?


Код:
Cond1 = Close > MA( Close, 3 );
Cond2 = Volume > Ref( Volume, -1 );

printf( "Type of Cond1:" + typeof( Cond1 ) );
printf( "\nType of Cond2:" + typeof( Cond2 ) );


или

Код:
Cond1 = Close > MA( Close, 3 );
Cond2 = Volume > Ref( Volume, -1 );

_Trace( "!CLEAR!" );
_Trace( "Type of Cond1:" + typeof( Cond1 ) );
_Trace( "Type of Cond2:" + typeof( Cond2) );
Посмотреть профиль Отправить личное сообщение
fujis84



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

СообщениеДобавлено: Вс Мар 29, 2015 5:33 am Ответить с цитатой Вернуться к началу

Цитата:
AFL is specifically designed to protect the newbie and people without coding experience
from programming stuff like memory allocation/deallocation, pointer manipulation,
declarations, type casting, etc.


So although it looks like C it is way more easy than C.

What is single operator in AFL (like array addition) involves many line of code in C
plus memory allocation/deallocation (and keeping track on all that).

SIMPLICITY OF USE plus compactness of code is the paramount design decision.
That's why arrays in AFL are automatically managed, have size that automatically
refers to "visible" area, so you can simply add arrays with single + operator.


With general purpose C language with "normal" arrays you would need to manage memory for arrays by yourself,
alignment (if size differs which elements to add), looping (you need to perform calculations
on individual elements of array).
(maybe you don't know but in C and there are no built-in dynamic arrays, only fixed compile-time size is supported,
and dynamic array is implemented via pointers and explicit memory allocation malloc/free)

As for "matrix" operations - that this does not belong to the definition of any general purpose language.
There are no "matrix" operations in any popular general purpose language C/C++/Java/JScript/Basic/Pascal.

In C/C++ even scalar trigonometric operations like sin( x) or string concatenation are NOT part of the language.

The language itself defines:
a) syntax
b) basic arithmetic operators + precedence working on primitive types only (scalar integer and/or float)
c) flow control (conditional execution, loops)
d) structural concepts (variables/functions/procedures/structures/objects)
e) some miscellaneous stuff like run-time type info, exception handling etc.

And that's it.

Anything more is supplied by LIBRARIES. In C there is a library for basic string manipulation (such as concatenation
- strcat) or floating point. The same with any high-level stuff like matrices - this is the area which
is implemented by EXTERNAL libraries (not part of the language).
Libraries in AFL can be provided by:
a) #include - the AFL code implementing features via functions
b) AmiBroker Development Kit - allowing to write extensions (functions) as a DLL in any compiled language.
c) JScript/VBScript
d) any external COM object http://www.amibroker.com/guide/a_aflcom.html

This covers any imaginable application and any imaginable need you may have.

Having said that, for anyone needing multiple dimensional arrays in AFL there are several options:
a) use VarGet/VarSet (the 2-dim array is simply array of the array, so for N:M 2-dim array you need N AFL arrays)
b) using embedded JScript parts with AFL
c) using free open source Osaka plugin (you can extend it to your needs since all sources are available)
d) using any external COM object (written in VB for example if you need that)

If anyone is "advanced enough" to need multiple dimensional arrays, it is also "advanced enough" to use these options
without any trouble.


Also with regards to:

> - some of the architecture of AB is quirky also e.g. essentially it is a database, at the binary level, but you can't write
> directly to the native database


That is entirely not true.
The database is exposed in two ways:
First (more general)
full OLE read/write direct access to the database - see Stocks/Stock/Quotations/Quotation objects:
http://www.amibroker.com/guide/objects.html
- and this OLE interface is DIRECTLY available from AFL level.

Second (easier)
AddToComposite/Foreign - gives you easy to use way to STORE and READ from the AmiBroker database.

Best regards,
Tomasz Janeczko
amibroker.com


Последний раз редактировалось: fujis84 (Вс Мар 29, 2015 5:38 am), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение
crn



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

СообщениеДобавлено: Вс Мар 29, 2015 11:55 am Ответить с цитатой Вернуться к началу

fujis84 писал(а):
crn писал(а):
ни видео


ни видео?

http://www.amibroker.com/support.html
https://www.youtube.com/results?search_query=amibroker
etc

ты либо полностью тупой или абсолютно глупо.


а ты видимо еще хуже.
Черным по белому написано, что вся справка и примеры на АНГЛ. ЯЗЫКЕ.
Ссылки которые ты мне скинул я без твоих соплей давно все уже видел.
Посмотреть профиль Отправить личное сообщение
crn



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

СообщениеДобавлено: Вс Мар 29, 2015 12:18 pm Ответить с цитатой Вернуться к началу

fujis84 писал(а):
crn писал(а):

Почему не объявляются переменные Cond1 Cond2 и почему у них нет типа?


Код:
Cond1 = Close > MA( Close, 3 );
Cond2 = Volume > Ref( Volume, -1 );

printf( "Type of Cond1:" + typeof( Cond1 ) );
printf( "\nType of Cond2:" + typeof( Cond2 ) );


или

Код:
Cond1 = Close > MA( Close, 3 );
Cond2 = Volume > Ref( Volume, -1 );

_Trace( "!CLEAR!" );
_Trace( "Type of Cond1:" + typeof( Cond1 ) );
_Trace( "Type of Cond2:" + typeof( Cond2) );


И что? это пример того, как они объявляются по вашему?
То, что там динамическая типизация админ сайта мне уже указал. Не стило себя утруждать бесполезным примером.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Мар 29, 2015 12:32 pm Ответить с цитатой Вернуться к началу

Брейк, пацаны.

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



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

СообщениеДобавлено: Вт Мар 31, 2015 10:35 am Ответить с цитатой Вернуться к началу

https://ubertrader.org/uberblog/amibroker-afl-architecture/

Рекомендую.
Посмотреть профиль Отправить личное сообщение
crn



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

СообщениеДобавлено: Вт Мар 31, 2015 11:16 am Ответить с цитатой Вернуться к началу

nofx писал(а):
https://ubertrader.org/uberblog/amibroker-afl-architecture/

Рекомендую.


Да спасибо, прочитал ее.
Вот еще, если кому нужно:

http://decadencetrader.narod.ru/AmiHelpRU.doc
Посмотреть профиль Отправить личное сообщение
crn



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

СообщениеДобавлено: Вт Мар 31, 2015 11:24 am Ответить с цитатой Вернуться к началу

Интересно, что в справке не указываются различные варианты перегрузок функций.

6 аргументов в справке:
SYNTAX Param( ''name'', defaultval, min, max, step, sincr = 0 )
RETURNS NUMBER

и сразу же, в этой же справке в качестве примера используют 5 аргументов:
Mn= Param("step", 2, 1,3, 0.1);

А в одном примере вообще видел 4 аргумента:
sp = Param( "MA Period", 12, 2, 100 );
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вт Мар 31, 2015 2:39 pm Ответить с цитатой Вернуться к началу

Если параметр не указан, то используется дефолтный.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen