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



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

СообщениеДобавлено: Ср Апр 07, 2010 2:54 pm Ответить с цитатой Вернуться к началу

Image

Помогите пож-та разобраться с циклом доливки/отливки. SigscaleOut вроде нормально работает, а вот SigscaleIn как то не радует...
Гляньте плиз код, может выявите ошибки. Или может у когото есть правильно работающий код с обеими функциями IN|OUT?


Смотрите картинку выше, там все в принципе расписано.

Код:
PDS=100;
Spred=O;
SMA=MA(Spred,pds);
Range=2*ATR(PDS/2);
MAH1=SMA-range;
MAH2=SMA-2*range;
LB0=O>=SMA AND Ref(O,-1)<SMA;
LB1=O<=MAH1 AND Ref(O,-1)>MAH1;// делаем покупки против падающего тренда при преодалении уровней mah1 mah2
LB2=O<=MAH2 AND Ref(O,-1)>MAH2;
Buy1 = LB1 OR LB2;
HS0=O>SMA AND Ref(O,-1)<SMA;
HS1=O>=MAH1 AND Ref(O,-1)<MAH1;// уменьшаем позу при возвращении к sma  и проходе уровней в обратную сторону
HS2=O>=MAH2 AND Ref(O,-1)<MAH2;
//Sell = HS1 OR HS2;
Sell1= HS0;
OUT=LB0 ;
BuyPrice=SellPrice=O;
Short=Cover=0;
Hlev = 0;
exit = 0;

for( i =0; i < BarCount ; i++ )
{
   if( Hlev == 0 AND  LB1 [i] AND SMA[i]>0) // без первоначяльной позы проходим 1-й уровень
       {
      Buy [i]=1; // входим в лонг в контртренд
      Hlev  = 1; // запоминаем новое положение в щечике уровней
        }
      else   if( Hlev == 0 AND LB2 [i] AND SMA[i]>0 ) // без первоначяльной позы проходим 2-й уровень
          {
      Buy [i]=1;
      Hlev  =  2;
         }
   if( Hlev == 1 AND Sell1 [i] ) //  После преодаления 1-го уровня, возврат к SMA (0-й уровень) и след-но выход из позы
       {
         exit=1; // выход из позицыи
            Hlev=0;
       }
      else if( Hlev==1 AND LB2 [i] ) //  переход в позе с первого уровня на второй
       {
         Buy [i] =  sigScaleIn; // наращиваем лонг
          Hlev = 2; // учитываем перехрод в щетчике
      }
         if( Hlev==2 AND HS1 [i]) // возврат со 2-го уровня на 1-ый
       {
         Buy[ i ] = sigScaleOut; // уменьшаем позу
      Hlev = 1; // понижаем щетчик
       }
  else if( Hlev == 2 AND Sell1 [i]) // гэп спреда со второго  уровня на 0-й (SMA)
       {
         exit=1;
       Hlev=0;
      }
   if( exit == 1 )
       {
         Buy[ i ] = 0;
         Sell[ i ] = 1 ;
         exit = 0;
         Hlev=0;
       }
}


SetPositionSize( 50, spsPercentOfEquity );
SetPositionSize( 50, spsPercentOfPosition * ( Buy == sigScaleOut ) ); // scale out 50% of position
SetPositionSize( 25, spsPercentOfEquity * ( Buy == sigScaleIn ) );
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) Vol " +WriteVal( V, 1.0 ) +" {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 )) ));
Plot( C, "Close", colorBlack, styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
ToolTip=StrFormat("Open: %g\nHigh:  %g\nLow:   %g\nClose:  %g (%.1f%%)\nVolume: "+NumToStr( V, 1 ), O, H, L, C, SelectedValue( ROC( C, 1 )));
PlotShapes(IIf(Sell1,shapeSmallCircle+shapePositionAbove,shapeNone) ,colorCustom12,Graph0,SellPrice,0);
//PlotShapes(IIf(Cover,shapeSmallCircle,shapeNone) ,colorGreen,Graph0,CoverPrice,0);
//PlotShapes(IIf(Short,shapeHollowSmallDownTriangle,shapeNone) ,colorRed,Graph0,ShortPrice,0);
PlotShapes(IIf(Buy1,shapeHollowSmallUpTriangle,shapeNone) ,colorAqua,Graph0,BuyPrice,0);
Plot( SMA, "\n"+"SMA", colorBlue, styleLine );
Plot( MAH1, "\n"+"MAH1", colorRed, styleLine );
Plot( MAH2, "\n"+"MAH2", colorRed, styleLine+styleDashed );
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen