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