1

我发现了这个.. 将其发布在 Amibroker 编辑器中.. 已保存.. 在进一步研究后发现.. 它仅适用于代码中 if 语句中列出的期货.. 我想看看这是股票..任何想法..

// 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);
4

1 回答 1

1

这是我在 Amibroker 论坛上得到的回复.. 以为我会分享答案..

这既是指标也是探索(然而——这段代码使用了非常古老的方法,现在使用 PLOT 或 ADDCOLUMN 函数代替这种过时的编码风格要方便得多)

公式中只有一些错误,因为它使用赋值而不是相等检查,因此您需要替换:

HiLo=IIf(HLv=-1,

HiLo=IIf(HLv == -1,

与 - HiLoInvert=IIf(HLv=-1,

这是因为 == (double =) 是用于相等检查的运算符。

于 2013-04-17T04:18:10.620 回答