2013-04-14 5 views
1

Я нашел это .. разместил его в редакторе Amibroker .. сохранен .. узнал после дальнейшего изучения .. что он будет работать только на фьючерсы, которые перечислены в если заявления в коде .. я хотел бы видеть это на акции .. любые идеи ..как запрограммировать этот индикаторный скрипт для работы с акциями, а не только с фьючерсами

// ACD Plot 
// LSMA is Linreg 
// ACD.afl 
// v 1.2 9/13/2004 

SetChartBkColor(16); 

Per = Param("Periods",13); 
Per2 = Param("Periods 2",34); 
LSMAPer = Param("LMSA Period",25); 
Offset = Param("A Level",1); 
ACDFlag = 0; 
IntervalFlag = IIf(Interval(format=0)==300,1,0); 

strInterval = Interval(format=2); 

strWeekday = StrMid("SunMonTueWedThuFriSat", SelectedValue(DayOfWeek())*3,3); 


if(StrFind(Name(), "YM")) 
{ 
    ACDOffset = 10; 
    ACDFlag = 1; 
    ACDTime = 94500; 
} 

if(StrFind(Name(), "ER")) 
{ 
    ACDOffset = 0.5; 
    ACDFlag = 1; 
    ACDTime = 93500; 
} 

if(StrFind(Name(), "ES")) 
{ 
    ACDOffset = 2; 
    ACDFlag = 1; 
    ACDTime = 94500; 
} 

if(StrFind(Name(), "NQ")) 
{ 
    ACDOffset = 3; 
    ACDFlag = 1; 
    ACDTime = 94500; 
} 

if(StrFind(Name(), "ZB")) 
{ 
    ACDOffset = 0.15; 
    ACDFlag = 1; 
    ACDTime = 83000; 
} 

if(StrFind(Name(), "ZN")) 
{ 
    ACDOffset = 0.15; 
    ACDFlag = 1; 
    ACDTime = 83000; 
} 

GraphXSpace = 1; 
Shift = 2; 

// calculate the pivot range 
PDH = TimeFrameGetPrice("H", inDaily, -1); // gives previous Day High when working on intraday data 
PDL = TimeFrameGetPrice("L", inDaily, -1); 
PDC = TimeFrameGetPrice("C", inDaily, -1); 
PP = (PDH+PDL+PDC)/3; 

DIFF = abs((PDH+PDL)/2 - PP); 
PRHi = PP + DIFF; 
PRLo = PP - DIFF; 

EMA1 = EMA(Avg,Per); 
EMA2 = EMA(Avg,Per2); 
LSMA = LinearReg(Avg, LSMAPer); 

Plot(C, "Close",colorWhite,styleCandle); 


if (ACDFlag AND IntervalFlag) { 
    ORHigh= ValueWhen(TimeNum()<ACDTime,HighestSince(DateNum()>Ref(DateNum(),-1),High)); 
    ORLow = ValueWhen(TimeNum()<ACDTime,LowestSince(DateNum()>Ref(DateNum(),-1), Low)); 

    Plot(PRHi,"PRHigh",colorWhite,styleDots+styleNoLine+styleNoLabel); 
    Plot(PRLo,"PRLow",colorWhite,styleDots+styleNoLine+styleNoLabel); 
    Plot(ORHigh,"ORHigh",colorBlue,style=styleStaircase+styleDots+styleNoLine+styleNoLabel); 
    Plot(ORLow,"ORLow",colorBlue,style=styleStaircase+styleDots+styleNoLine+styleNoLabel); 
    Plot(ORHigh+ACDOffset,"AUp",colorYellow,style=styleStaircase+styleDots+styleNoLine); 
    Plot(ORLow-ACDOffset,"ADn",colorYellow,style=styleStaircase+styleDots+styleNoLine); 
    // Plot(LSMA, "LSMA", colorYellow,style=styleThick); 
} 

Title=Name()+" ["+strInterval+"] "+ strWeekday + " " +Date()+ " Close: " 
+WriteVal(C,format=1.2) +" "+WriteVal(per,format=1.0)+"-Per MA: " 
+WriteVal(EMA1,format=1.2)+" " + WriteVal(per2,format=1.0)+"-Per MA: " 
+WriteVal(EMA2,format=1.2) + " PR High: "+WriteVal(PRHi,format=1.2) + " PR Low: " 
+WriteVal(PRLo,format=1.2); 
+1

Почему вы не спрашиваете поддержку Amibroker? – mjuarez

ответ

1

это ответ я получил в Amibroker форуме .. думал я хотел бы поделиться ответ ..

Это и индикатор, и исследование (однако - этот код использует очень старый подход, теперь гораздо удобнее использовать функции PLOT или ADDCOLUMN вместо этой устаревшей codi стиль нг)

Есть только некоторые ошибки в формуле, поскольку она использует назначение вместо проверки равенства, так что вам нужно заменить:

HiLo = IIF (ГЛЖ = -1,

с

HiLo = IIF (HLV == -1,

то же самое с - HiLoInvert = IIF (HLV = -1,

Это потому, что == (двойной) = оператор используется для equalit y проверить.

 Смежные вопросы

  • Нет связанных вопросов^_^