Try Changing:

Ref( SyncShort, -1 ) to  SyncShort[i-1]
Ref( SyncLong, -1 )  to  SyncLong[i-1]

Should take care of your errors.

On Wed, Jun 10, 2009 at 7:05 AM, lxman77 <[email protected]> wrote:

>
>
> Hello All,
>
> I am trying to convert the following code to AFL:
>
> [LegacyColorValue = true];
>
> Input: LongLeg(35), ShortLeg(5), MultiLeg(10), MultiW(1);
> Var: SyncShort(0), SyncLong(0), SyncMulti(0);
> Var: TempSyncS(0), TempSyncL(0), TempSyncM(0), MultiOsc(0);
> Var: LongWeight(0), ShortWeight(0), MultiWeight(0), MultiHigh(0),
> MultiLow(0);
> var: DateLock(980116);
>
> ShortWeight = 2/(ShortLeg + 1);
> LongWeight = 2/(LongLeg + 1);
>
> if TempSyncS = 0 then Begin
> SyncShort = Close;
> SyncLong = Close;
> end
> Else Begin
> SyncShort = TempSyncS * (1 - ShortWeight) + (ShortWeight * Close);
> SyncLong = TempSyncL * (1 - LongWeight) + (LongWeight * Close);
> end;
>
> TempSyncS = SyncShort;
> TempSyncL = SyncLong;
>
> MultiOsc = (100 * ( (SyncShort / SyncLong) - 1) );
> plot1(MultiOsc, "MO");
>
> MultiWeight = 2/(MultiLeg + 1);
>
> if TempSyncM = 0 then
> SyncMulti = MultiOsc
> Else
> SyncMulti = (AbsValue(TempSyncM) * (1 - MultiWeight)) + (MultiWeight *
> MultiOsc);
>
> TempSyncM = SyncMulti;
>
> MultiHigh = SyncMulti * MultiW;
> MultiLow = -1 * MultiHigh;
>
> Plot2(MultiHigh,"MH");
> Plot3(MultiLow,"ML");
>
> Print("MO:", MultiOsc, " MH: ", MultiHigh, " ML: ", MultiLow);
>
> I am not sure what the original code is, Metatrader, EasyLanguage,
> something like that. Anyway, this is what I have so far:
>
> _SECTION_BEGIN("Rubber Band Indicator");
> SetChartOptions(0,0,chartGrid30|chartGrid70);
> LongLeg = Param( "LongLeg", 35, 1, 200, 1 );
> ShortLeg = Param( "ShortLeg", 5, 1, 200, 1 );
> MultiLeg = Param( "MultiLeg", 10, 1, 200, 1 );
> MultiW = Param( "MultiW", 1, 1, 200, 1 );
>
> ShortWeight = 2 / ( ShortLeg + 1 );
> LongWeight = 2 / ( LongLeg + 1 );
>
> SyncShort[ 0 ] = Close[ 0 ];
> SyncLong[ 0 ] = Close[ 0 ];
>
> for( i = 1; i < BarCount; i++ )
> {
> SyncShort[ i ] = Ref( SyncShort, -1 ) * (1 - ShortWeight) + (ShortWeight *
> Close[ i ]);
> SyncLong[ i ] = Ref( SyncLong, -1 ) * (1 - LongWeight) + (LongWeight *
> Close[ i ]);
> };
>
> MultiOsc = (100 * ( (SyncShort / SyncLong) - 1) );
>
> Plot( MultiOsc, _DEFAULT_NAME(), ParamColor( "Color", colorCycle ),
> ParamStyle("Style") );
>
> MultiWeight = 2/(MultiLeg + 1);
>
> TempSyncM = MultiOsc;
>
> SyncMulti = (abs(TempSyncM) * (1 - MultiWeight)) + (MultiWeight *
> MultiOsc);
> TempSyncM = SyncMulti;
>
> MultiHigh = SyncMulti * MultiW;
> MultiLow = -1 * MultiHigh;
>
> Plot( MultiHigh, "MH", ParamColor( "Color", colorCycle ),
> ParamStyle("Style") );
> Plot( MultiLow, "ML", ParamColor( "Color", colorCycle ),
> ParamStyle("Style") );
> _SECTION_END();
>
> When I check it, I get the newbie error, Error 8 on lines 16 and 17. I do
> not understand why, because I believe I am passing an element, and not an
> array through the = operator.
>
> Help please. Thanks in advance.
>
>  
>

Reply via email to