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



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

СообщениеДобавлено: Чт Янв 12, 2012 6:00 pm Ответить с цитатой Вернуться к началу

Добрый день!
Подскажите пожалуйста, что подкорректировать в коде для визуального отображения ситуации когда несколько позиций одновременно находятся в рынке (на примере двух фьючерсов). Если 1 то в рынке если 0 вне позиции.При совпадении единиц у двух контрактах можно определить одновременно открытые позиции. Основная проблема: не удаётся одновременно получить два расчета по позициям (видишь только тот который виден в закладки Symbols, а второй показывает всё время 0 и наоборот). И можно ли код сделать проще :

price_H_GAZR = Foreign("SPFB.GAZR","H," );
price_L_GAZR = Foreign("SPFB.GAZR","L," );

price_H_GOLD = Foreign("SPFB.GOLD","H," );
price_L_GOLD= Foreign("SPFB.GOLD","L," );


UpperLimit1 =Ref(HHV(price_H_GOLD, 10), -1);
LowerLimit1 = Ref(LLV(price_L_GOLD, 10), -1);

UpperLimit2 =Ref(HHV(price_H_GAZR, 6), -1);
LowerLimit2 = Ref(LLV(price_L_GAZR, 10), -1);

Buy1 = Cross(C ,UpperLimit1 );
Sell1 = Cross(LowerLimit1 ,C ) ;

Buy2 = Cross(C ,UpperLimit2 );
Sell2 = Cross(LowerLimit2 ,C ) ;

Buy1=ExRem(Buy1,Sell1 );
Sell1=ExRem(Sell1 ,Buy1);

Buy2=ExRem(Buy2,Sell2 );
Sell2=ExRem(Sell2 ,Buy2);

a=Flip(Buy1,Sell1 );
b=Flip(Buy2,Sell2 );

Plot(a, "a", colorGreen);
Plot(b, "b", colorRed);
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Янв 12, 2012 9:11 pm Ответить с цитатой Вернуться к началу

Вот тут
Код:

Buy1 = Cross(C ,UpperLimit1 );
Sell1 = Cross(LowerLimit1 ,C ) ;

Buy2 = Cross(C ,UpperLimit2 );
Sell2 = Cross(LowerLimit2 ,C ) ;

как я понял Buy1 и Sell1 это сделка по SPFB.GOLD и там цена закрытия голда должна пересекать UpperLimit1 и LowerLimit1, а Buy2 и Sell2 это сделки по SPFB.GAZR и там цена закрытия газа должна пересекать UpperLimit2 и LowerLimit2.
Если так, то тебе надо там писать не C, а
Код:
C1 = Foreign("SPFB.GAZR","C," );

и
Код:
C2 = Foreign("SPFB.GOLD","C," );


Тогда будешь видеть сразу обе бумаги не зависимо от того, какая открыта в Ами. И тогда легко увидишь если обе бумаги в лонге.
Код:
qqq = a AND b;

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



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

СообщениеДобавлено: Пт Янв 13, 2012 10:52 am Ответить с цитатой Вернуться к началу

000 писал(а):
Вот тут
Код:

Buy1 = Cross(C ,UpperLimit1 );
Sell1 = Cross(LowerLimit1 ,C ) ;

Buy2 = Cross(C ,UpperLimit2 );
Sell2 = Cross(LowerLimit2 ,C ) ;

как я понял Buy1 и Sell1 это сделка по SPFB.GOLD и там цена закрытия голда должна пересекать UpperLimit1 и LowerLimit1, а Buy2 и Sell2 это сделки по SPFB.GAZR и там цена закрытия газа должна пересекать UpperLimit2 и LowerLimit2.

Да, Вы совершенно правильно поняли и после поправки в коде оба контракта стали отображаться одновременно. Большое спасибо за помощь.
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen