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



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

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

А как сделать чтобы лонг был при выполнении условия закрытие свечи выше трейлинга Buy = trend==1 ;
выход из лонга при пробитии нижнего канала дончиан
Sell= Cross(DonchianLower,Low);

шорт при закрытии свечи ниже трелинга Short=trend==-1 ;

Выход из шорта при пробитии ценой верхнего канала дончиан?
Cover=Cross(High,DonchianUpper);

У меня как-то хаотично это все работает, чего-то не хватает в коде Rolling Eyes

_SECTION_BEGIN("Linar");

pds=Param("DonchianPeriods",5,5,20,1);
DonchianUpper =HHV(Ref(H,-1),pds);
DonchianLower = LLV(Ref(L,-1),pds);
DonchianMiddle = (DonchianUpper+DonchianLower)/2;


Factor=optimize("Factor",1,1,1,1);
Pd1=optimize("Linair param",188,1,200,1);
Pd2=optimize("ATR Periods",7,1,101,2);

Up = LinearReg((H+L)*0.5,Pd1) + Factor*ATR(Pd2);
Dn = LinearReg((H+L)*0.5,Pd1) - Factor*ATR(Pd2);

iATR=ATR(Pd2);

TrendUp=TrendDown=Null;

trend[0]=1;

changeOfTrend=0;

flag=flagh=0;


for (i = 1; i <BarCount-1; i++) {

TrendUp[i] = Null;

TrendDown[i] = Null;



trend[i]=1;





if (Close[i]>Up[i-1]) {

trend[i]=1;

if (trend[i-1] == -1) changeOfTrend = 1;



}

else if (Close[i]<Dn[i-1]) {

trend[i]=-1;

if (trend[i-1] == 1) changeOfTrend = 1;

}

else if (trend[i-1]==1) {

trend[i]=1;

changeOfTrend = 0;

}

else if (trend[i-1]==-1) {

trend[i]=-1;

changeOfTrend = 0;

}



if (trend[i]<0 && trend[i-1]>0) {

flag=1;

}

else {

flag=0;

}



if (trend[i]>0 && trend[i-1]<0) {

flagh=1;

}

else {

flagh=0;

}



if (trend[i]>0 && Dn[i]<Dn[i-1]){

Dn[i]=Dn[i-1];

}



if (trend[i]<0 && Up[i]>Up[i-1])

{ Up[i]=Up[i-1];

}



if (flag==1)

{ Up[i]=(H[i]+L[i])/2+(Factor*iATR[i]);;

}

if (flagh==1)

{ Dn[i]=(H[i]+L[i])/2-(Factor*iATR[i]);;

}

if (trend[i]==1) {

TrendUp[i]=Dn[i];

if (changeOfTrend == 1) {

TrendUp[i-1] = TrendDown[i-1];

changeOfTrend = 0;

}

}

else if (trend[i]==-1) {

TrendDown[i]=Up[i];

if (changeOfTrend == 1) {

TrendDown[i-1] = TrendUp[i-1];

changeOfTrend = 0;

}

}

}



Plot(TrendUp,"Trend",colorGreen, stylethick);

Plot(TrendDown,"Down",colorRed, stylethick);



Buy = trend==1 ;
Sell= Cross(DonchianLower,Low);
Short=trend==-1 ;
Cover=Cross(High,DonchianUpper);

Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);
Short=ExRem(Short,Cover);
Cover=ExRem(Cover,Short);




BuyPrice=ValueWhen(Buy,C);
SellPrice=ValueWhen(Sell,C);
ShortPrice=ValueWhen(Short,C);
CoverPrice=ValueWhen(Cover,C);


PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorGreen, 0, L, Offset=-40);
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorLime, 0,L, Offset=-50);
PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-45);
PlotShapes(IIf(Short, shapeSquare, shapeNone),colorRed, 0, H, Offset=40);
PlotShapes(IIf(Short, shapeSquare, shapeNone),colorOrange, 0,H, Offset=50);
PlotShapes(IIf(Short, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-45);

PlotShapes(IIf(Sell, shapeStar, shapeNone),colorGold, 0, L, Offset=-15);
PlotShapes(IIf(Cover, shapeStar, shapeNone),colorGold, 0,L, Offset=-15);

_SECTION_END();
Посмотреть профиль Отправить личное сообщение
Atlasraketa



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

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

Код:
_SECTION_BEGIN("Linar");

pds=Param("DonchianPeriods",5,5,20,1);
DonchianUpper =HHV(Ref(H,-1),pds);
DonchianLower = LLV(Ref(L,-1),pds);
DonchianMiddle = (DonchianUpper+DonchianLower)/2;
 

Factor=optimize("Factor",1,1,1,1);
Pd1=optimize("Linair param",188,1,200,1);
Pd2=optimize("ATR Periods",7,1,101,2);

Up = LinearReg((H+L)*0.5,Pd1) + Factor*ATR(Pd2);
Dn = LinearReg((H+L)*0.5,Pd1) - Factor*ATR(Pd2);

iATR=ATR(Pd2);

TrendUp=TrendDown=Null;

trend[0]=1;

changeOfTrend=0;

flag=flagh=0;


for (i = 1; i <BarCount-1; i++) {

      TrendUp[i] = Null;

      TrendDown[i] = Null;

     

      trend[i]=1;

   

     

      if (Close[i]>Up[i-1]) {

         trend[i]=1;

         if (trend[i-1] == -1) changeOfTrend = 1;

         

      }

      else if (Close[i]<Dn[i-1]) {

         trend[i]=-1;

         if (trend[i-1] == 1) changeOfTrend = 1;

      }

      else if (trend[i-1]==1) {

         trend[i]=1;

         changeOfTrend = 0;       

      }

      else if (trend[i-1]==-1) {

         trend[i]=-1;

         changeOfTrend = 0;

      }



      if (trend[i]<0 && trend[i-1]>0) {

         flag=1;

      }

      else {

         flag=0;

      }

     

      if (trend[i]>0 && trend[i-1]<0) {

         flagh=1;

      }

      else {

         flagh=0;

      }

     

      if (trend[i]>0 && Dn[i]<Dn[i-1]){

         Dn[i]=Dn[i-1];

      }

     

      if (trend[i]<0 && Up[i]>Up[i-1])

        { Up[i]=Up[i-1];

      }

     

      if (flag==1)

       {  Up[i]=(H[i]+L[i])/2+(Factor*iATR[i]);;

        }

      if (flagh==1)

        { Dn[i]=(H[i]+L[i])/2-(Factor*iATR[i]);;

         }

      if (trend[i]==1) {

         TrendUp[i]=Dn[i];

         if (changeOfTrend == 1) {

            TrendUp[i-1] = TrendDown[i-1];

            changeOfTrend = 0;

         }

      }

      else if (trend[i]==-1) {

         TrendDown[i]=Up[i];

         if (changeOfTrend == 1) {

            TrendDown[i-1] = TrendUp[i-1];

            changeOfTrend = 0;

         }

      }

   }



Plot(TrendUp,"Trend",colorGreen, stylethick);

Plot(TrendDown,"Down",colorRed, stylethick);



Buy = trend==1 ;
Sell= Cross(DonchianLower,Low);
Short=trend==-1 ;
Cover=Cross(High,DonchianUpper);

Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);
Short=ExRem(Short,Cover);
Cover=ExRem(Cover,Short);




BuyPrice=ValueWhen(Buy,C);
SellPrice=ValueWhen(Sell,C);
ShortPrice=ValueWhen(Short,C);
CoverPrice=ValueWhen(Cover,C);


PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorGreen, 0, L, Offset=-40);
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorLime, 0,L, Offset=-50);                     
PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-45);
PlotShapes(IIf(Short, shapeSquare, shapeNone),colorRed, 0, H, Offset=40);
PlotShapes(IIf(Short, shapeSquare, shapeNone),colorOrange, 0,H, Offset=50);                     
PlotShapes(IIf(Short, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-45);

PlotShapes(IIf(Sell, shapeStar, shapeNone),colorGold, 0, L, Offset=-15);
PlotShapes(IIf(Cover, shapeStar, shapeNone),colorGold, 0,L, Offset=-15);

_SECTION_END();
Посмотреть профиль Отправить личное сообщение
Atlasraketa



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

СообщениеДобавлено: Вс Окт 30, 2016 5:28 pm Ответить с цитатой Вернуться к началу

Т.е. идея вход по трейлингу линейной регрессии, а выход при пробитии поддержки или сопротивления.
Примерно как на картинке.
Посмотреть профиль Отправить личное сообщение
Atlasraketa



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

СообщениеДобавлено: Вс Окт 30, 2016 6:10 pm Ответить с цитатой Вернуться к началу

Еще вот такой код попробовал прогнать, но пишет что не найдено аргументов на buy и sell, не правильно записал что-то?

Код:
_SECTION_BEGIN("Каналы регрессии");

SetBarsRequired( 1000, 0 );
 

order = optimize( "n-th Order", 1, 1, 10, 1 );
clevel = optimize( "Confidence Level", 2, 1, 3, 0.1 );
extend = optimize( "Extend Fit (Bars)", 10, 0, 20, 1 );
trig = ParamToggle( "Force Calculation", "Press Here" );
minbars = optimize( "Minimum", 20, 1, 500, 1 ); // minimum number of bars before new channel starts
showTrack = ParamToggle( "Show Track", "No|Yes", 0 );
showSignals = ParamToggle ( "Show Signals", "No|Yes", 0 );
 
s1 = GetChartID() + StrToNum( Name() );
 
regext = regextx1a = regextz1a = Null;
prc = ( H + L ) / 2;
sd = 0;
bi = BarIndex();
lvb = LastVisibleValue( bi );
fvb = 1;
 
function NewBarJustArrived()
{
    vname = "lbe" + s1;
    prev = Nz( StaticVarGet( vname ) );
    curr = Status( "lastbarend" );
 
    StaticVarSet( vname, curr );
 
    return curr != prev;
}
 
StaticVarSet( "DoEntirecalculation" + s1, 0 );
 
if( Nz( StaticVarGet( "svOrder" + s1 ) ) != order OR
        Nz( StaticVarGet( "svClevel" + s1 ) ) != clevel OR
        StaticVarGet( "svInterval" + s1 ) != Interval() OR
        StaticVarGet( "svMinbars" + s1 ) != minbars OR
        StaticVarGet( "svExtend" + s1 ) != extend OR
        StaticVarGetText( "svSymbol" + s1 ) != Name() OR
        NewBarJustArrived() OR
        trig )
{
    StaticVarSet( "DoEntirecalculation" + s1, 1 );
    //Say( " Do Calculation " );
}
 
StaticVarSet( "svOrder" + s1, order );
StaticVarSet( "svClevel" + s1, clevel );
StaticVarSet( "svInterval" + s1, Interval() );
StaticVarSet( "svMinbars" + s1, minbars );
StaticVarSet( "svExtend" + s1, extend );
StaticVarSetText( "svSymbol" + s1, Name() );
 
function CalculateCoefficients( aa, bb )
{
    n = MxGetSize( aa, 0 );
    ll = uu = Matrix( n, n, 0 );
    xx = yy = 0;
 
    for( j = 0; j < n; j++ )
    {
        for( i = 0; i < n; i++ )
        {
            if( i <= j )
            {
                uu[i][j] = aa[i][j];
 
                for( k = 0; k <= i - 1; k++ )
                    uu[i][j] -= ll[i][k] * uu[k][j];
 
                if( i == j )
                    ll[i][j] = 1;
                else
                    ll[i][j] = 0;
            }
            else
            {
                ll[i][j] = aa[i][j];
 
                for( k = 0; k <= j - 1; k++ )
                    ll[i][j] -= ll[i][k] * uu[k][j];
 
                ll[i][j] /= uu[j][j];
                uu[i][j] = 0;
            }
        }
    }
 
    for( i = 0; i < n; i++ )
    {
        yy[i] = bb[i];
 
        for( j = 0; j < i; j++ )
        {
            yy[i] -= ll[i][j] * yy[j];
        }
    }
 
    for( i = n - 1; i >= 0; i-- )
    {
        xx[i] = yy[i];
 
        for( j = i + 1; j < n; j++ )
        {
            xx[i] -= uu[i][j] * xx[j];
        }
 
        xx[i] /= uu[i][i];
    }
 
    return xx;
}
 
function CalculateFit( eb, bars )
{
    global reg;
    global x1a;
    global z1a;
    global regext;
    global regextx1a;
    global regextz1a;
 
    reg = x1a = z1a = Null;
    regext = regextx1a = regextz1a = Null;
 
    lb = eb;
    fb = eb - bars;
    nb = lb - fb;
 
    if( eb > bars )
    {
        aa = Matrix( order + 1, order + 1, 0 );
        bb = 0;
 
        // fill matrix A
        for( i = 0; i <= order; i++ )
        {
            for( j = 0; j <= order; j++ )
            {
                for( k = fb; k <= lb; k++ )
                {
                    vv = ( k - ( lb + fb ) / 2 );
                    aa[i][j] = aa[i][j] + ( vv ^ ( i + j ) );
                }
            }
        }
 
        // fill matrix B
        for( i = 0; i <= order; i++ )
        {
            for( j = fb; j <= lb; j++ )
            {
                vv = ( j - ( lb + fb ) / 2 );
                bb[i] = bb[i] + prc[j] * ( vv ^ i );
            }
        }
 
        // calculate coefficients
        xx = CalculateCoefficients( aa, bb );
 
        // store the fit in reg
        for( i = fb; i <= lb; i++ )
        {
            reg[i] = xx[0];
 
            for( j = 1; j <= order; j++ )
            {
                vv = ( i - ( lb + fb ) / 2 );
                reg[i] = reg[i] + xx[j] * vv ^ j;
            }
        }
 
        // extended fit (only when channel is active at last bar)
        if( lb == BarCount - 1 )
        {
            for( i = lb + 1; i <= lb + extend; i++ )
            {
                regext[i - extend] = xx[0];
 
                for( j = 1; j <= order; j++ )
                {
                    vv = ( i - ( lb + fb ) / 2 );
                    regext[i - extend] = regext[i - extend] + xx[j] * vv ^ j;
                }
            }
        }
 
        // calculate standard deviation
        sdp = 0;
 
        for( i = fb; i <= lb; i++ )
        {
            sdp = sdp + ( prc[i] - reg[i] ) ^ 2;
        }
 
        sd = sqrt( sdp / ( bars - 2 ) ); // devide by ( bars - 2 ) corresponding to StdErr function
 
        x1a = reg + sd * clevel;
        z1a = reg - sd * clevel;
        regextx1a = regext + sd * clevel;
        regextz1a = regext - sd * clevel;
    }
}
 
if( StaticVarGet( "DoEntirecalculation" + s1 ) == 1 )
{
    regFinal = x1aFinal = z1aFinal = 0;
    regPerm = x1aPerm = z1aPerm = 0;
    buyPerm = sellPerm = 0;
 
    sb = fvb;
 
    for( i = fvb; i <= lvb; i++ )
    {
        eb = i;
        bars = eb - sb;
 
        if( bars > minbars )
        {
            calculateFit( eb, bars );
            regFinal = IIf( !IsEmpty( reg ), reg, regFinal );
            x1aFinal = IIf( !IsEmpty( x1a ), x1a, x1aFinal );
            z1aFinal = IIf( !IsEmpty( z1a ), z1a, z1aFinal );
 
            if( C[ i ] < z1aFinal [ i ] AND z1aFinal [ i ] > z1aFinal [ i - 1 ] )
            {
                sellPerm[ eb ] = 1;
                i = i + 2;
                sb = i;
            }
            else
                if( C[ i ] > x1aFinal [ i ] AND x1aFinal [ i ] < x1aFinal [ i - 1 ] )
                {
                    buyPerm[ eb ] = 1;
                    i = i + 2;
                    sb = i;
                }
 
            regPerm[ eb ] = reg[ eb ];
            x1aPerm[ eb ] = x1a[ eb ];
            z1aPerm[ eb ] = z1a[ eb ];
        }
    }
 
    regFinal = IIf( regFinal, regFinal, Null );
    x1aFinal = IIf( x1aFinal, x1aFinal, Null );
    z1aFinal = IIf( z1aFinal, z1aFinal, Null );
    regPerm = IIf( regPerm, regPerm, Null );
    x1aPerm = IIf( x1aPerm, x1aPerm, Null );
    z1aPerm = IIf( z1aPerm, z1aPerm, Null );
    buyPerm = IIf( buyPerm, buyPerm, Null );
    sellPerm = IIf( sellPerm, sellPerm, Null );
 
    StaticVarSet( "regFinal" + s1, regFinal );
    StaticVarSet( "x1aFinal" + s1, x1aFinal );
    StaticVarSet( "z1aFinal" + s1, z1aFinal );
    StaticVarSet( "regext" + s1, regext );
    StaticVarSet( "regextx1a" + s1, regextx1a );
    StaticVarSet( "regextz1a" + s1, regextz1a );
    StaticVarSet( "regPerm" + s1, regPerm );
    StaticVarSet( "x1aPerm" + s1, x1aPerm );
    StaticVarSet( "z1aPerm" + s1, z1aPerm );
    StaticVarSet( "buyPerm" + s1, buyPerm );
    StaticVarSet( "sellPerm" + s1, sellPerm );
}
 
 
SetChartOptions( 0, chartShowDates );
SetChartBkColor( colorBlack );
SetBarFillColor( IIf( C > O, ColorRGB( 0, 75, 0 ), IIf( C <= O, ColorRGB( 75, 0, 0 ), colorLightGrey ) ) );
Plot( C, "", IIf( C > O, ColorRGB( 0, 255, 0 ), IIf( C <= O, ColorRGB( 255, 0, 0 ), colorLightGrey ) ), 64, Null, Null, 0, 1, 1 );
 
Plot( iif( !IsEmpty( StaticVarGet( "regPerm" + s1 ) ) , StaticVarGet( "regFinal" + s1 ), Null ), "", colorBlue, styleLine | styleNoLabel, Null, Null, 0, 1, 2 );
Plot( StaticVarGet( "regFinal" + s1 ), "", colorBlue, styleDashed, Null, Null, 0, 1, 1 );
Plot( iif( !IsEmpty( StaticVarGet( "regPerm" + s1 ) ) , StaticVarGet( "x1aFinal" + s1 ), Null ), "", colorred, styleLine | styleNoLabel, Null, Null, 0, 1, 2 );
Plot( StaticVarGet( "x1aFinal" + s1 ), "", colorred, styleDashed, Null, Null, 0, 1, 1 );
Plot( iif( !IsEmpty( StaticVarGet( "regPerm" + s1 ) ) , StaticVarGet( "z1aFinal" + s1 ), Null ), "", colorred, styleLine | styleNoLabel, Null, Null, 0, 1, 2 );
Plot( StaticVarGet( "z1aFinal" + s1 ), "", colorred, styleDashed, Null, Null, 0, 1, 1 );
Plot( StaticVarGet( "regext" + s1 ), "", colorlightgrey, styleDashed | styleNoLabel | styleNoRescale, Null, Null, extend, 0, 1 );
Plot( StaticVarGet( "regextx1a" + s1 ), "", colorlightgrey, styleDashed | styleNoLabel | styleNoRescale, Null, Null, extend, 0, 1 );
Plot( StaticVarGet( "regextz1a" + s1 ), "", colorlightgrey, styleDashed | styleNoLabel | styleNoRescale | styleClipMinMax, Null, Null, extend, 0, 1 );


 
hh = StaticVarGet( "x1aFinal" + s1 );
ll = StaticVarGet( "z1aFinal" + s1 );
PlotOHLC( ll, ll, hh, hh, "", ColorRGB( 10, 10, 10 ), styleCloud | styleNoLabel | styleNoRescale, Null, Null, 0, -1, 1 );
 


if( showTrack )
{
    Plot( StaticVarGet( "regPerm" + s1 ), "", colorLightBlue, styleDashed | styleNoLabel | styleNoRescale, Null, Null, 0, 1, 1 );
    Plot( StaticVarGet( "x1aPerm" + s1 ), "", colorOrange, styleDashed | styleNoLabel | styleNoRescale, Null, Null, 0, 1, 1 );
    Plot( StaticVarGet( "z1aPerm" + s1 ), "", colorOrange, styleDashed | styleNoLabel | styleNoRescale, Null, Null, 0, 1, 1 );
}
 
if( showSignals )
{
    PlotShapes( IIf( StaticVarGet( "buyPerm" + s1 ), shapeUpArrow, shapeNone ), colorDarkGreen, 0, L, -15 );
    PlotShapes( IIf( StaticVarGet( "buyPerm" + s1 ), shapeSmallCircle, shapeNone ), colorWhite, 0, C, 0 );
    PlotShapes( IIf( StaticVarGet( "sellPerm" + s1 ), shapeDownArrow, shapeNone ), colorRed, 0, H, -15 );
    PlotShapes( IIf( StaticVarGet( "sellPerm" + s1 ), shapeSmallCircle, shapeNone ), colorWhite, 0, C, 0 );
    PlotShapes(IIf(Sell, shapeStar, shapeNone),colorGold, 0, L, Offset=-15);
    PlotShapes(IIf(Cover, shapeStar, shapeNone),colorGold, 0,L, Offset=-15);
   
}
 
SecsToGo = Status( "lastbartimeleft" );
nm = StrMid( Name(), 0, StrLen( Name() ) );


Buy = "buyperm" +s1;
Sell = Cross (iif( !IsEmpty( StaticVarGet( "regPerm" + s1 ) ) , StaticVarGet( "regFinal" + s1 ), Null ), Low);
Short = "sellPerm" + s1;
Cover = Cross (High, iif( !IsEmpty( StaticVarGet( "regPerm" + s1 ) ) , StaticVarGet( "regFinal" + s1 ), Null ));


_SECTION_END();
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Окт 30, 2016 9:23 pm Ответить с цитатой Вернуться к началу

Нужно описание того, что ты вычисляешь в цикле. Я почти понял, но возможны ошибки. Опиши словами алгоритм вычисляемый в цикле.

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



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

СообщениеДобавлено: Вс Окт 30, 2016 10:01 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Нужно описание того, что ты вычисляешь в цикле. Я почти понял, но возможны ошибки. Опиши словами алгоритм вычисляемый в цикле.


Я не знаю Embarassed
Нашел в интернете, добавил бай, сел хотел протестировать, но пока не вышло Rolling Eyes
Посмотреть профиль Отправить личное сообщение
Atlasraketa



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

СообщениеДобавлено: Вс Окт 30, 2016 10:02 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Нужно описание того, что ты вычисляешь в цикле. Я почти понял, но возможны ошибки. Опиши словами алгоритм вычисляемый в цикле.


если просто, то чтобы при пробитии канала регрессии вверх или вниз был лонг или шорт, а при касании центральной синей линии выход их позиции Laughing
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Окт 30, 2016 11:10 pm Ответить с цитатой Вернуться к началу

Это как раз понятно, но ты говоришь, что типа что то не так.
А если ты не знаешь, что там вычисляется, то как определил что там не так?

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



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

СообщениеДобавлено: Пн Окт 31, 2016 11:49 am Ответить с цитатой Вернуться к началу

000 писал(а):
Это как раз понятно, но ты говоришь, что типа что то не так.
А если ты не знаешь, что там вычисляется, то как определил что там не так?


Error 701 missing buy, sell. Протестировать не удалось на предмет полезности
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пн Окт 31, 2016 11:57 am Ответить с цитатой Вернуться к началу

Какой из этих кодов?

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



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

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

000 писал(а):
Какой из этих кодов?


_SECTION_BEGIN("Каналы регрессии");
который.

Я вот заметил что наиболее перспектиные методы торговли это объемы, линейная регрессия и ценовой канал.
1) Объемы точка входа
2) Линейная регрессия направление тренда
3) Ценовой канал точка стопа.

Вот и эксперементирую с линейной регрессией, прикидывал всякие простейшие уравнения к графику, что бы прописать сперва условия, а потом думать как их закодить, не вышло. Поэтому методом тыка опять Laughing
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пн Окт 31, 2016 2:32 pm Ответить с цитатой Вернуться к началу

Ну да. В последнем коде вообще нет правил покупки и продажи а в него зачем то добавили
Код:
PlotShapes(IIf(Sell, shapeStar, shapeNone),colorGold, 0, L, Offset=-15);
PlotShapes(IIf(Cover, shapeStar, shapeNone),colorGold, 0,L, Offset=-15);

Вот Ами и ругается что заставляют рисовать неизвестно что.

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



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

СообщениеДобавлено: Пн Окт 31, 2016 2:46 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Ну да. В последнем коде вообще нет правил покупки и продажи а в него зачем то добавили
Код:
PlotShapes(IIf(Sell, shapeStar, shapeNone),colorGold, 0, L, Offset=-15);
PlotShapes(IIf(Cover, shapeStar, shapeNone),colorGold, 0,L, Offset=-15);

Вот Ами и ругается что заставляют рисовать неизвестно что.


не, во эти условия он считает нулевыми, как я понимаю
Buy = "buyperm" +s1;

Sell = Cross (iif( !IsEmpty( StaticVarGet( "regPerm" + s1 ) ) , StaticVarGet( "regFinal" + s1 ), Null ), Low);
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пн Окт 31, 2016 3:25 pm Ответить с цитатой Вернуться к началу

Интересно. А почему у тебя в коде сначала стоит отрисовка значков на сигнал, а сам сигнал определяется после? Laughing

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


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

СообщениеДобавлено: Пн Окт 31, 2016 3:47 pm Ответить с цитатой Вернуться к началу

В общем код длинный и навороченный.
Если туппо подставить в него сигналы на сделки типа
Код:

SetPositionSize(1, 4);

Buy = StaticVarGet( "buyPerm" + s1 );
Short = StaticVarGet( "sellPerm" + s1 );
Sell = Short;
Cover = Buy;

то это не работает. Разбираться почему нет ни времени ни желания. Там 300 строк кода. Афигеть....

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen