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



Зарегистрирован: 07.06.2008
Сообщения: 17
Откуда: Екатеринбург

СообщениеДобавлено: Чт Июн 26, 2008 3:20 pm Ответить с цитатой Вернуться к началу

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

Код:
NumLastBar = LastValue( BarIndex() ); // определяем номер последнего бара                                                                        //
NumLastBuy    = LastValue( Highest (IIf(Ref(Buy,   1),  BarIndex(), Null)));     // определяем номер последнего бара если есть сигнал Buy        //
NumLastSell   = LastValue( Highest (IIf(Ref(Sell,  1),  BarIndex(), Null)));     // определяем номер последнего бара если есть сигнал Sell       //
NumLastShort  = LastValue( Highest (IIf(Ref(Short, 1),  BarIndex(), Null)));     // определяем номер последнего бара если есть сигнал Short      //
NumLastCover  = LastValue( Highest (IIf(Ref(Cover, 1),  BarIndex(), Null)));     // определяем номер последнего бара если есть сигнал Cover      //
NumLastMax    = Max(Max(NumLastBuy,NumLastSell),Max(NumLastShort,NumLastCover)); // определяем номер бара последнего сигнала                     //
// LastPoza = если открыта  Buy  - 1  ; Short - 2 ;  иначе -0                                                                                    //
LastPoza = IIf ( NumLastBuy == NumLastMax AND NumLastMax < NumLastBar , 1, IIf ( NumLastShort == NumLastMax AND NumLastMax < NumLastBar , 2, 0));//
//заполняем массив "poza" на барах последней открытой сделки                                                                                     //
poza = 0;                                                                                                                                        //
if (LastPoza ==1 OR LastPoza ==2)                                                                                                                //
{                                                                                                                                                //
for (i = NumLastMax ; i < NumLastBar ; i++ )                                                                                                     //
         poza[i+1] = LastPoza;                                                                                                                   //
}                                                                                                                                                //
ColorLastPoza = IIf (poza == 1  ,colorBlue, IIf(poza == 2,colorRed,colorGrey40)); //полоска соответствующая последней открытой позиции           //
Plot( 1, "Ribbon", ColorLastPoza, styleOwnScale|styleArea|styleNoLabel, -1, 100 );

_________________
Romoti.
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen