Автор |
Сообщение |
denis_
Зарегистрирован: 18.10.2011
Сообщения: 78
|
Добрый день!
Подскажите пожалуйста, что подкорректировать в коде для визуального отображения ситуации когда несколько позиций одновременно находятся в рынке (на примере двух фьючерсов). Если 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
|
Вот тут
Код: |
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," ); |
Тогда будешь видеть сразу обе бумаги не зависимо от того, какая открыта в Ами. И тогда легко увидишь если обе бумаги в лонге.
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
denis_
Зарегистрирован: 18.10.2011
Сообщения: 78
|
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.
|
Да, Вы совершенно правильно поняли и после поправки в коде оба контракта стали отображаться одновременно. Большое спасибо за помощь. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|