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


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

СообщениеДобавлено: Ср Дек 17, 2008 12:18 am Ответить с цитатой Вернуться к началу

Элементарные правила тестовой системы.
Код:

Buy = Cross(MA(C, 10), MA(C, 20));
Sell =  0;
Short = Cross(MA(C, 20), MA(C, 10));
Cover = 0;

Выходы только по трейлингу:
при лонге - трейлинг по хаям 3*ATR(10)
при шорте - трейлинг по лоу 2*ATR(10)

и еще.

Часто хотят ставить стоп в безубыток. Если не трудно и такой пример.

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


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

СообщениеДобавлено: Ср Дек 17, 2008 9:52 am Ответить с цитатой Вернуться к началу

как то так.
Если будут ошибки - напишите, я не разглядывал внимательно результат.

Теперь про правила работы.
Порядок всегда такой.
1. Внутри свечи проверяем срабатывание ордеров.
2. Двигаем стопы
3. Открываемся всегда по закрытию свечи или по открытию следующей.

Библиотека ордеров - никакого отношения к торговле не имеет. Она не знает ничего про спреды и предназначена только для запоминания места ордера и рисования прерывистой линии. То есть линия рисуется только тогда когда ордер "стоит". Если вы определили, что ордер сработал, нужно цену открытия-закрытия передать в функцию закрытия-открытия позиции. Здесь и нужно самому следить за спредом.

Библиотека ордеров поддерживает только по одному ордеру каждого вида. Всего 4 штуки.

AmiVar CoverStop;
AmiVar CoverLimit;
AmiVar SellStop;
AmiVar SellLimit;

Торговая библиотека написана таким образом, чтобы работал стандартный Scan Ami. Так что проверять можно и соответствие графиков и скана.

З.Ы. По самой задаче.
Не получился трейлинг с первого раза Smile
Трейлинг ведь только в сторону улучшения двигаться должен.
В следующем посте исправимся


Последний раз редактировалось: BabyBear (Ср Дек 17, 2008 10:46 am), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение Отправить e-mail
BabyBear
Советник


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

СообщениеДобавлено: Ср Дек 17, 2008 10:29 am Ответить с цитатой Вернуться к началу

Трейлинг стоп двигается только в сторону цены.

З.Ы. Очень похоже, что входим мы не в ту сторону при пересечении МА. Так чта Кому надо наоборот - устанавливайте в параметрах
Short MA Period > Long MA Period
Smile
Посмотреть профиль Отправить личное сообщение Отправить e-mail
BabyBear
Советник


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

СообщениеДобавлено: Ср Дек 17, 2008 12:19 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Часто хотят ставить стоп в безубыток. Если не трудно и такой пример.

Есть такие функции в библиотеке
Код:

BBL_GetCurrentBuyLotPrice();   
BBL_GetCurrentShortLotPrice();

Они возвращают среднюю цену длинных/коротких позиций. Если нет добавлений, функции возвратят цены покупки/продажи.
Так что двигание стопа (для короткой позиции) в безубыток может быть, например, таким

Код:

if( High[i] < BBL_GetCurrentShortLotPrice())
{
   // без учета спреда
   BBL_OrdersCoverStopSet( BBL_GetCurrentShortLotPrice());
}


З.Ы. Имена функций длинные, так что пользуемся "Ctrl+Space"
Посмотреть профиль Отправить личное сообщение Отправить e-mail
BabyBear
Советник


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

СообщениеДобавлено: Ср Дек 17, 2008 12:27 pm Ответить с цитатой Вернуться к началу

Теперь про оптимизацию.
Оптимизировать большое количество параметров можно руками. получается быстро и удобно.
1. переключаемся в режим построения эквити
2. делам видимым весь график
3. открываем окно с параметрами и шевелим их.

Устойчивость так же легко оценить. пошевелив по очереди параметры
Приведенные на рисунке параметры плохие, так как нет устойчивости по параметру Short MA Period, в этом можно убедиться, заменив 12 на 14, например.
Посмотреть профиль Отправить личное сообщение Отправить e-mail
BabyBear
Советник


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

СообщениеДобавлено: Ср Дек 17, 2008 12:52 pm Ответить с цитатой Вернуться к началу

а вот нормальные параметры,
12 и 12 , конечно не оптимальные, но можно с умным видом говорить, что они меют глубокий смысл. Smile
Посмотреть профиль Отправить личное сообщение Отправить e-mail
000
Site Admin


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

СообщениеДобавлено: Ср Дек 17, 2008 1:19 pm Ответить с цитатой Вернуться к началу

Не видел список всех новых функций с кратким описанием

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


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

СообщениеДобавлено: Ср Дек 17, 2008 1:40 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Не видел список всех новых функций с кратким описанием

А его и нет Smile
Буду тут писать его

BabyBearLib

BBL_InitForex
Код:
spread = Param( "Spread", 5, -15, 15);
BBL_InitForex(20000, spread, 100000, 100000);

параметры: начальный баланс, спред, 3 и 4 параметры передаются в SetBarsRequired()
Функция вызывает настроечные функции Ами: PointValue, RoundLotSize, MarginDeposit, InitialEquity, CommissionMode, CommissionAmount, PriceBoundChecking.

BBL_Init
Внутри неё всякая ерунда и что то типа
Код:

Buy=0; Short=0; Cover=0; Sell=0;
BuyPrice = Close + spread*TickSize;
CoverPrice = Close + spread*TickSize;
SellPrice = Close;
ShortPrice = Close;


BBL_Release
Ничего интересного. Обязательно вызываем в конце программы.
Копирует данные из библиотеки в Ами

BBL_NextCandle
Вызываем в начале цикла по барам. Говорит библиотеке, что нужно перейти к следующей свече.

BBL_EndCandle
Вызываем в конце цикла по барам. Вычисляет новые значения открытых позиций, эквити и баланса

BBL_EntryStatistic
Вывод информации наружу. Подробности не помню. потом напишу
http://bearden.narod.ru/BBL_SignalGraph.html

BBL_ShortLot
Продаем на текущем баре указанный лот по указанной цене
Параметры лот и цена. По умолчанию цена = Close
Правильнее было мне написать ShortPrice.
использование
Код:
BBL_ShortLot( 10000]);
BBL_ShortLot( 10000], OrderPrice[i]);


BBL_ShortScaleInLot
Добавляемся (продаем) на текущем баре указанный лот по указанной цене
Параметры лот и цена. По умолчанию цена = Close
Правильнее было мне написать ShortPrice.
использование
Код:
BBL_ShortScaleInLot( 10000);
BBL_ShortScaleInLot( 10000, OrderPrice[i]);


BBL_ShortScaleOutLot
Это покупка!!!
Уменьшаем продажи (покупаем) на текущем баре указанный лот по указанной цене
Параметры лот и цена. По умолчанию цена = Close + spread
Правильнее было мне написать BuyPrice или CoverPrice.
использование
Код:
BBL_ShortScaleOutLot( 10000);
BBL_ShortScaleOutLot( 10000, OrderPrice[i] + spread*TickSize);


BBL_ShortOrScaleInLot
Продаем. Добавляемся или открываем short
Параметры лот и цена. По умолчанию цена = Close
Правильнее было мне написать ShortPrice.

BBL_ShortScaleInProcent
Увеличение лота short - Продаем
Параметры лот и цена. По умолчанию цена = Close
Например, ShortScaleInProcent(100) - удваиваем лот short

BBL_ShortScaleOutProcent
частичное закрытие short - Покупаем
например, ShortScaleOutProcent(50) - закрываем половину открытого вниз

BBL_CoverAll
Закрываем Short.
Параметр - цена. по умолчанию Сlose + spread * TickSize
Устанавливает Cover[i] = 1;

BBL_CoverStop
Закрываем Short.
Параметр - цена. по умолчанию Сlose + spread * TickSize
Устанавливает Cover[i] = 2;

BBL_CoverLimit
Закрываем Short.
Параметр - цена. по умолчанию Сlose + spread * TickSize
Устанавливает Cover[i] = 3;

Следующие функции аналогичны предыдущим.
BBL_BuyLot
BBL_BuyOrScaleInLot
BBL_BuyScaleOutLot
BBL_BuyScaleOutProcent
BBL_BuyScaleInLot
BBL_BuyScaleInProcent
BBL_SellAll
BBL_SellStop
BBL_SellLimit


// Функции возвращают массивы для рисования после всех расчетов
BBL_GetBalanceArray
BBL_GetEquityArray
BBL_GetBuyLotArray
BBL_GetSellLotArray

// А эти возвращают одно число - используем внутри цикла
BBL_GetCurrentShortLot
BBL_GetCurrentBuyLot
BBL_GetCurrentBuyLotPrice
BBL_GetCurrentShortLotPrice
BBL_GetCurrentShortEquity
BBL_GetCurrentBuyEquity
BBL_GetLastBuyAsk - Аск последней покупки
BBL_GetLastSellBid - бид последней продажи
BBL_GetLastShortBid
BBL_GetLastBid - бид последней сделки (любой)
BBL_GetCurrentBid - это просто close[CurrentCandle]
BBL_GetCurrentAsk - это close[CurrentCandle] + fSpreadSize


Библиотека BBL_Orders

Библиотека ордеров - никакого отношения к торговле не имеет. Она не знает ничего про спреды и предназначена только для запоминания места ордера и рисования прерывистой линии. То есть линия рисуется только тогда когда ордер "стоит". Если вы определили, что ордер сработал, нужно цену открытия-закрытия передать в функцию закрытия-открытия позиции. Здесь и нужно самому следить за спредом.

Библиотека ордеров поддерживает только по одному ордеру каждого вида. Всего 4 штуки.
AmiVar CoverStop;
AmiVar CoverLimit;
AmiVar SellStop;
AmiVar SellLimit;


BBL_OrdersInit
BBL_OrdersEndCandle

BBL_OrdersGetCoverStopArray
BBL_OrdersGetCoverStopValue
BBL_OrdersCoverStopSet
BBL_OrdersCoverStopCancel
BBL_OrdersCoverStopCheck

BBL_OrdersGetCoverLimitArray
BBL_OrdersGetCoverLimitValue
BBL_OrdersCoverLimitSet
BBL_OrdersCoverLimitCancel
BBL_OrdersCoverLimitCheck

BBL_OrdersGetSellStopArray
BBL_OrdersGetSellStopValue
BBL_OrdersSellStopSet
BBL_OrdersSellStopCancel
BBL_OrdersSellStopCheck

BBL_OrdersGetSellLimitArray
BBL_OrdersGetSellLimitValue
BBL_OrdersSellLimitSet
BBL_OrdersSellLimitCancel
BBL_OrdersSellLimitCheck

ЧТо поподробнее описать?
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Сергей



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

СообщениеДобавлено: Пн Дек 22, 2008 4:20 pm Ответить с цитатой Вернуться к началу

Ты можешь описать этим языком аналог applystop (.... TRUE) т.е. с изменениями в течении времени?
Посмотреть профиль Отправить личное сообщение
BabyBear
Советник


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

СообщениеДобавлено: Пн Дек 22, 2008 4:22 pm Ответить с цитатой Вернуться к началу

Сергей писал(а):
Ты можешь описать этим языком аналог applystop (.... TRUE) т.е. с изменениями в течении времени?

Думаю, что могу. Но...
Я не разбирался с ApplyStop. Давай конкретную задачу. Можно со стандартным решением. За одно результаты можно будет сравнить.
Посмотреть профиль Отправить личное сообщение Отправить e-mail
000
Site Admin


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

СообщениеДобавлено: Пн Дек 22, 2008 5:33 pm Ответить с цитатой Вернуться к началу

Сергей писал(а):
Ты можешь описать этим языком аналог applystop (.... TRUE) т.е. с изменениями в течении времени?

Первый задание для примера которое я давал как раз содержало трейлинг с переменным размером зависящим от ATR()
Цитата:

Выходы только по трейлингу:
при лонге - трейлинг по хаям 3*ATR(10)
при шорте - трейлинг по лоу 2*ATR(10)

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


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

СообщениеДобавлено: Чт Фев 12, 2009 5:23 am Ответить с цитатой Вернуться к началу

привет BabyBear,

Вопрос по твоей BBL:
Твой BBL умеет вести несколько позиций по одному тикеру? То есть ами всегда ведет одну позу, рассчитывая среднюю цену, хотя многие терминалы позволяют иметь пять лонговых поз по EUR.

И еще:
Если не секрет: тебя как звать? Меня Денис.
Посмотреть профиль Отправить личное сообщение
BabyBear
Советник


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

СообщениеДобавлено: Чт Фев 12, 2009 9:35 am Ответить с цитатой Вернуться к началу

Приветик.
В BBL ведется только одна позиция. То есть внутри есть хранится только один размер открытой позиции. Он умножается на цены и получается прибыль. Однако , есть возможность увеличивать и сокращать этот размер позиции.
Ордера - отдельная длл. Ордеров может быть только 4
buy stop
sell stop
buy limit
sell limit
идея такая - когда график пересекает/касается линию стопа, вызываем функцию из первой библиотеки. Эту идею можно реализовать руками с любым количеством ордеров. Просто , мне не было нужды.



В интернете меня все зовут BabyBear. Это имя мне очень нравится.
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen