Автор |
Сообщение |
Atlasraketa
Зарегистрирован: 12.07.2015
Сообщения: 136
|
А как сделать чтобы лонг был при выполнении условия закрытие свечи выше трейлинга Buy = trend==1 ;
выход из лонга при пробитии нижнего канала дончиан
Sell= Cross(DonchianLower,Low);
шорт при закрытии свечи ниже трелинга Short=trend==-1 ;
Выход из шорта при пробитии ценой верхнего канала дончиан?
Cover=Cross(High,DonchianUpper);
У меня как-то хаотично это все работает, чего-то не хватает в коде
_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(); |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
Atlasraketa
Зарегистрирован: 12.07.2015
Сообщения: 136
|
Код: |
_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(); |
|
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
Atlasraketa
Зарегистрирован: 12.07.2015
Сообщения: 136
|
Т.е. идея вход по трейлингу линейной регрессии, а выход при пробитии поддержки или сопротивления.
Примерно как на картинке. |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
Atlasraketa
Зарегистрирован: 12.07.2015
Сообщения: 136
|
Еще вот такой код попробовал прогнать, но пишет что не найдено аргументов на 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(); |
|
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Нужно описание того, что ты вычисляешь в цикле. Я почти понял, но возможны ошибки. Опиши словами алгоритм вычисляемый в цикле. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
Atlasraketa
Зарегистрирован: 12.07.2015
Сообщения: 136
|
000 писал(а): |
Нужно описание того, что ты вычисляешь в цикле. Я почти понял, но возможны ошибки. Опиши словами алгоритм вычисляемый в цикле. |
Я не знаю
Нашел в интернете, добавил бай, сел хотел протестировать, но пока не вышло ![Rolling Eyes](images/smiles/icon_rolleyes.gif) |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
Atlasraketa
Зарегистрирован: 12.07.2015
Сообщения: 136
|
000 писал(а): |
Нужно описание того, что ты вычисляешь в цикле. Я почти понял, но возможны ошибки. Опиши словами алгоритм вычисляемый в цикле. |
если просто, то чтобы при пробитии канала регрессии вверх или вниз был лонг или шорт, а при касании центральной синей линии выход их позиции ![Laughing](images/smiles/icon_lol.gif) |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Это как раз понятно, но ты говоришь, что типа что то не так.
А если ты не знаешь, что там вычисляется, то как определил что там не так? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
Atlasraketa
Зарегистрирован: 12.07.2015
Сообщения: 136
|
000 писал(а): |
Это как раз понятно, но ты говоришь, что типа что то не так.
А если ты не знаешь, что там вычисляется, то как определил что там не так? |
Error 701 missing buy, sell. Протестировать не удалось на предмет полезности |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Какой из этих кодов? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
Atlasraketa
Зарегистрирован: 12.07.2015
Сообщения: 136
|
000 писал(а): |
Какой из этих кодов? |
_SECTION_BEGIN("Каналы регрессии");
который.
Я вот заметил что наиболее перспектиные методы торговли это объемы, линейная регрессия и ценовой канал.
1) Объемы точка входа
2) Линейная регрессия направление тренда
3) Ценовой канал точка стопа.
Вот и эксперементирую с линейной регрессией, прикидывал всякие простейшие уравнения к графику, что бы прописать сперва условия, а потом думать как их закодить, не вышло. Поэтому методом тыка опять ![Laughing](images/smiles/icon_lol.gif) |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ну да. В последнем коде вообще нет правил покупки и продажи а в него зачем то добавили
Код: |
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
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
Atlasraketa
Зарегистрирован: 12.07.2015
Сообщения: 136
|
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); |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Интересно. А почему у тебя в коде сначала стоит отрисовка значков на сигнал, а сам сигнал определяется после? ![Laughing](images/smiles/icon_lol.gif) |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
В общем код длинный и навороченный.
Если туппо подставить в него сигналы на сделки типа
Код: |
SetPositionSize(1, 4);
Buy = StaticVarGet( "buyPerm" + s1 );
Short = StaticVarGet( "sellPerm" + s1 );
Sell = Short;
Cover = Buy;
|
то это не работает. Разбираться почему нет ни времени ни желания. Там 300 строк кода. Афигеть.... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|