Overlay Gan Fan

Hi all,
I am trying to overlay my AFL indicator on two different sheets or panels.
However, when I change any parameter in panel/sheet P1 (for example P1/P2 settings), the same change also appears in other panel/sheet. please help me doing the code running indipendently on each sheet/ or panel. Here in may code:

_SECTION_BEGIN("Title & Price");

SetChartOptions(0, chartShowArrows | chartShowDates);

_N(Title = StrFormat("{{NAME}} - {{INTERVAL}}  {{DATE}}  "
    + "O %g  H %g  L %g  C %g (%.1f%%) {{VALUES}}",
    O, H, L, C, SelectedValue(ROC(C,1)) ));

Plot(C, "Close",
    ParamColor("Color", colorDefault),
    styleNoTitle | ParamStyle("Style") | GetPriceStyle());

_SECTION_END();

/************************************************************
   FAN DRAWING FUNCTION
************************************************************/
function DRAW_FAN_SQRT(mult, col, label,
                       OriginBarF, ExtendBarsF,
                       BaseRoot, DirSign,
                       bi, OriginPriceF, LabelFan)
{
    t      = bi - OriginBarF;
    k      = mult * DirSign;
    FanVal = (BaseRoot + k * t)^2;
    Mask   = IIf(t >= 0 AND t <= ExtendBarsF, FanVal, Null);

    Plot(Mask, label, col, styleLine | styleNoRescale);

    if (LabelFan)
        PlotText(label, OriginBarF + 4, OriginPriceF, col);
}

/************************************************************
   GLOBAL VARIABLES
************************************************************/
bi = BarIndex();
BC = BarCount;

DataPath = "C:\\GannFanLocks\\";
if (Status("action") == actionIndicator)
    fmkdir(DataPath);

/************************************************************
   GANN FAN 1 — ABSOLUTE LOCK OFFSET
************************************************************/
_SECTION_BEGIN("GANN FAN 1");

EnableFan1  = ParamToggle("Enable Fan 1", "OFF|ON", 1);
FanDir1     = Param("Fan1 Direction (1=UP, -1=DOWN)", 1, -1, 1, 2);
DirSign1    = FanDir1;

RootStep1   = Param("Fan1 Root Step", 0.02, 0.001, 1, 0.001);
ExtendBars1 = Param("Fan1 Extend Bars", 300, 20, 2000, 20);
LabelFan1   = ParamToggle("Fan1 Labels", "No|Yes", 1);

F1_1x8_ON = ParamToggle("Fan1 Show 1x8", "OFF|ON", 1);
F1_1x4_ON = ParamToggle("Fan1 Show 1x4", "OFF|ON", 1);
F1_1x2_ON = ParamToggle("Fan1 Show 1x2", "OFF|ON", 1);
F1_1x1_ON = ParamToggle("Fan1 Show 1x1", "OFF|ON", 1);
F1_2x1_ON = ParamToggle("Fan1 Show 2x1", "OFF|ON", 1);
F1_4x1_ON = ParamToggle("Fan1 Show 4x1", "OFF|ON", 1);
F1_8x1_ON = ParamToggle("Fan1 Show 8x1", "OFF|ON", 1);

ColF1_1x8 = ParamColor("Fan1 Color 1x8", colorYellow);
ColF1_1x4 = ParamColor("Fan1 Color 1x4", colorOrange);
ColF1_1x2 = ParamColor("Fan1 Color 1x2", colorGreen);
ColF1_1x1 = ParamColor("Fan1 Color 1x1", colorBrightGreen);
ColF1_2x1 = ParamColor("Fan1 Color 2x1", colorBlue);
ColF1_4x1 = ParamColor("Fan1 Color 4x1", colorRed);
ColF1_8x1 = ParamColor("Fan1 Color 8x1", colorAqua);

// ---------- FAN 1 LOCKING SYSTEM ----------
fn1 = DataPath + Name() + "_FAN1_" + NumToStr(GetChartID(),1.0) + ".txt";

if (ParamTrigger("Lock Fan 1", "LOCK!"))
{
    Offset1 = BC - 1 - SelectedValue(bi);
    fh = fopen(fn1, "w");
    if (fh)
    {
        fputs(NumToStr(Offset1, 1.0), fh);
        fclose(fh);
    }
}

// Load offset from file
fh = fopen(fn1, "r");
if (fh)
{
    Offset1 = StrToNum(fgets(fh));
    fclose(fh);
}
else
    Offset1 = 20;

// Recalculate origin bar
OriginBarF1 = BC - 1 - Offset1;
OriginBarF1 = Max(0, Min(OriginBarF1, BC-1));

// Origin price
OriginPriceF1 = IIf(FanDir1 == 1, L[OriginBarF1], H[OriginBarF1]);

// ------ DRAW FAN 1 ------
if (EnableFan1)
{
    BaseRoot1 = sqrt(OriginPriceF1);

    if (F1_1x8_ON) DRAW_FAN_SQRT(RootStep1/8, ColF1_1x8, "1x8",
                                 OriginBarF1, ExtendBars1,
                                 BaseRoot1, DirSign1,
                                 bi, OriginPriceF1, LabelFan1);

    if (F1_1x4_ON) DRAW_FAN_SQRT(RootStep1/4, ColF1_1x4, "1x4",
                                 OriginBarF1, ExtendBars1,
                                 BaseRoot1, DirSign1,
                                 bi, OriginPriceF1, LabelFan1);

    if (F1_1x2_ON) DRAW_FAN_SQRT(RootStep1/2, ColF1_1x2, "1x2",
                                 OriginBarF1, ExtendBars1,
                                 BaseRoot1, DirSign1,
                                 bi, OriginPriceF1, LabelFan1);

    if (F1_1x1_ON) DRAW_FAN_SQRT(RootStep1, ColF1_1x1, "1x1",
                                 OriginBarF1, ExtendBars1,
                                 BaseRoot1, DirSign1,
                                 bi, OriginPriceF1, LabelFan1);

    if (F1_2x1_ON) DRAW_FAN_SQRT(RootStep1*2, ColF1_2x1, "2x1",
                                 OriginBarF1, ExtendBars1,
                                 BaseRoot1, DirSign1,
                                 bi, OriginPriceF1, LabelFan1);

    if (F1_4x1_ON) DRAW_FAN_SQRT(RootStep1*4, ColF1_4x1, "4x1",
                                 OriginBarF1, ExtendBars1,
                                 BaseRoot1, DirSign1,
                                 bi, OriginPriceF1, LabelFan1);

    if (F1_8x1_ON) DRAW_FAN_SQRT(RootStep1*8, ColF1_8x1, "8x1",
                                 OriginBarF1, ExtendBars1,
                                 BaseRoot1, DirSign1,
                                 bi, OriginPriceF1, LabelFan1);
}

_SECTION_END();

Moderator comment: PLEASE DO USE CODE TAGS!

Dont use GetChartID(), use some unique number and use another copy of formula-file if you don't understand afl so well.

I'm not sure if this can help, two fans in same formula
It would be preferred to add two buttons and slider for the lock and rootstep

//@author original thangloipham 
// link @https://forum.amibroker.com/t/overlay-gan-fan/40401
/************************************************************
GLOBAL VARIABLES
************************************************************/
bi = BarIndex();
BC = BarCount;

RootStep1 = Param( "Fan1 Root Step", 0.02, 0.001, 1, 0.001 );
RootStep2 = Param( "Fan2 Root Step", 0.02, 0.001, 1, 0.001 );

EnableFan1 = ParamToggle( "Enable Fan 1", "OFF|ON", 1 );
EnableFan2 = ParamToggle( "Enable Fan 2", "OFF|ON", 1 );
FanDir1 =  ParamToggle( "Change Fandir", "No|Yes", 1 );
DirSign1 = IIf(fandir1,-1,1);
FanDir2 =  ParamToggle( "Change Fandir", "No|Yes", 1 );
DirSign2 = IIf(fandir2,-1,1);
DataPath = "C:/temp/";

if( Status( "action" ) == actionIndicator )
    fmkdir( DataPath );
/************************************************************
FAN DRAWING FUNCTION
************************************************************/
function DRAW_FAN_SQRT( mult, col, label, OriginBarF, ExtendBarsF, BaseRoot, DirSign, bi, OriginPriceF, LabelFan )
{
     k = mult * DirSign;

    // START POINT
    StartX = OriginBarF;
    StartY = OriginPriceF;        // should be BaseRoot^2 if you're using sqrt-based fans

    // END POINT (Fan Root Projection)
    EndX   = OriginBarF + ExtendBarsF;
    EndY   = ( BaseRoot + k * ExtendBarsF )^2;

    // --- DRAW LINE ---
    GfxSelectPen(col, 2);
    GfxSetZOrder(3);
    GfxSetCoordsMode(1);

    GfxMoveTo( StartX, StartY );
    GfxLineTo( EndX, EndY );
	//GfxSelectSolidBrush(colorAqua);


    //Plot( Mask, label, col, styleLine | styleNoRescale ,Null,Null);

    if( LabelFan )
        PlotText( label, OriginBarF + 4, OriginPriceF, col );
}
/************************************************************
GANN FAN 1 — ABSOLUTE LOCK OFFSET
************************************************************/
_SECTION_BEGIN( "GANN FAN 1" );



ExtendBars1 = Param( "Fan1 Extend Bars", 300, 20, 20000, 20 );
LabelFan1 = ParamToggle( "Fan1 Labels", "No|Yes", 1 );
LabelFan2 = ParamToggle( "Fan2 Labels", "No|Yes", 1 );

F1_1x8_ON = ParamToggle( "Fan1 Show 1x8", "OFF|ON", 1 );
F1_1x4_ON = ParamToggle( "Fan1 Show 1x4", "OFF|ON", 1 );
F1_1x2_ON = ParamToggle( "Fan1 Show 1x2", "OFF|ON", 1 );
F1_1x1_ON = ParamToggle( "Fan1 Show 1x1", "OFF|ON", 1 );
F1_2x1_ON = ParamToggle( "Fan1 Show 2x1", "OFF|ON", 1 );
F1_4x1_ON = ParamToggle( "Fan1 Show 4x1", "OFF|ON", 1 );
F1_8x1_ON = ParamToggle( "Fan1 Show 8x1", "OFF|ON", 1 );

ColF1_1x8 = ParamColor( "Fan1 Color 1x8", colorYellow );
ColF1_1x4 = ParamColor( "Fan1 Color 1x4", colorOrange );
ColF1_1x2 = ParamColor( "Fan1 Color 1x2", colorGreen );
ColF1_1x1 = ParamColor( "Fan1 Color 1x1", colorBrightGreen );
ColF1_2x1 = ParamColor( "Fan1 Color 2x1", colorBlue );
ColF1_4x1 = ParamColor( "Fan1 Color 4x1", colorRed );
ColF1_8x1 = ParamColor( "Fan1 Color 8x1", colorAqua );

// ---------- FAN 1 LOCKING SYSTEM ----------
fn1 = DataPath + Name() + "FAN1" + NumToStr( GetChartID(), 1.0 ) +"fn1"+ ".txt";

if(ParamTrigger("Lock Fan 1", "LOCK!") )
{
    Offset1 = BC - 1 - SelectedValue( bi );
    fh = fopen( fn1, "w" );

    if( fh )
    {
        fputs( NumToStr( Offset1, 1.0 ), fh );
        fclose( fh );
    }
}

// Load offset from file
fh = fopen( fn1, "r" );

if( fh )
{
    Offset1 = StrToNum( fgets( fh ) );
    fclose( fh );
}
else
    Offset1 = 20;

// Recalculate origin bar
OriginBarF1 = BC - 1 - Offset1;
OriginBarF1 = Max( 0, Min( OriginBarF1, BC - 1 ) );

// Origin price
OriginPriceF1 = IIf(FanDir1 == 1, H[OriginBarF1], L[OriginBarF1]);


// ------ DRAW FAN 1 ------
if( EnableFan1 )
{
    BaseRoot1 = sqrt( OriginPriceF1 );

    if( F1_1x8_ON ) DRAW_FAN_SQRT( RootStep1 / 8, ColF1_1x8, "1x8",
                                       OriginBarF1, ExtendBars1,
                                       BaseRoot1, DirSign1,
                                       bi, OriginPriceF1, LabelFan1 );

    if( F1_1x4_ON ) DRAW_FAN_SQRT( RootStep1 / 4, ColF1_1x4, "1x4",
                                       OriginBarF1, ExtendBars1,
                                       BaseRoot1, DirSign1,
                                       bi, OriginPriceF1, LabelFan1 );

    if( F1_1x2_ON ) DRAW_FAN_SQRT( RootStep1 / 2, ColF1_1x2, "1x2",
                                       OriginBarF1, ExtendBars1,
                                       BaseRoot1, DirSign1,
                                       bi, OriginPriceF1, LabelFan1 );

    if( F1_1x1_ON ) DRAW_FAN_SQRT( RootStep1, ColF1_1x1, "1x1",
                                       OriginBarF1, ExtendBars1,
                                       BaseRoot1, DirSign1,
                                       bi, OriginPriceF1, LabelFan1 );

    if( F1_2x1_ON ) DRAW_FAN_SQRT( RootStep1 * 2, ColF1_2x1, "2x1",
                                       OriginBarF1, ExtendBars1,
                                       BaseRoot1, DirSign1,
                                       bi, OriginPriceF1, LabelFan1 );

    if( F1_4x1_ON ) DRAW_FAN_SQRT( RootStep1 * 4, ColF1_4x1, "4x1",
                                       OriginBarF1, ExtendBars1,
                                       BaseRoot1, DirSign1,
                                       bi, OriginPriceF1, LabelFan1 );

    if( F1_8x1_ON ) DRAW_FAN_SQRT( RootStep1 * 8, ColF1_8x1, "8x1",
                                       OriginBarF1, ExtendBars1,
                                       BaseRoot1, DirSign1,
                                       bi, OriginPriceF1, LabelFan1 );
}






ExtendBars2 = Param( "Fan2 Extend Bars", 300, 20, 20000, 20 );
LabelFan1 = ParamToggle( "Fan2 Labels", "No|Yes", 1 );



f2_1x8_ON = ParamToggle( "fAN2 Show 1x8", "OFF|ON", 1 );
f2_1x4_ON = ParamToggle( "fAN2 Show 1x4", "OFF|ON", 1 );
f2_1x2_ON = ParamToggle( "fAN2 Show 1x2", "OFF|ON", 1 );
f2_1x1_ON = ParamToggle( "fAN2 Show 1x1", "OFF|ON", 1 );
f2_2x1_ON = ParamToggle( "fAN2 Show 2x1", "OFF|ON", 1 );
f2_4x1_ON = ParamToggle( "fAN2 Show 4x1", "OFF|ON", 1 );
f2_8x1_ON = ParamToggle( "fAN2 Show 8x1", "OFF|ON", 1 );

Colf2_1x8 = ParamColor( "fAN2 Color 1x8", colorYellow );
Colf2_1x4 = ParamColor( "fAN2 Color 1x4", colorOrange );
Colf2_1x2 = ParamColor( "fAN2 Color 1x2", colorGreen );
Colf2_1x1 = ParamColor( "fAN2 Color 1x1", colorBrightGreen );
Colf2_2x1 = ParamColor( "fAN2 Color 2x1", colorBlue );
Colf2_4x1 = ParamColor( "fAN2 Color 4x1", colorRed );
Colf2_8x1 = ParamColor( "fAN2 Color 8x1", colorAqua );







fn2 = DataPath + Name() + "FAN2" + NumToStr( GetChartID(), 1.0 ) +"fn2"+ ".txt";

if(ParamTrigger("Lock Fan 2", "LOCK!") )
{
    Offset2 = BC - 1 - SelectedValue( bi );
    fh2 = fopen( fn2, "w" );

    if( fh2 )
    {
        fputs( NumToStr( Offset2, 1.0 ), fh2 );
        fclose( fh2 );
    }
}

// Load offset from file
fh2 = fopen( fn2, "r" );

if( fh2 )
{
    Offset2 = StrToNum( fgets( fh2 ) );
    fclose( fh2 );
}
else
    Offset2 = 20;

// Recalculate origin bar
OriginBarF2 = BC - 1 - Offset2;
OriginBarF2 = MAX( 0, MIN( OriginBarF2, BC - 1 ) );

// Origin price
OriginPriceF2 = IIf(FanDir2 == 1, H[OriginBarF2], L[OriginBarF2]);


// ------ DRAW FAN 1 ------
if( EnableFan2 )
{
    BaseRoot2 = sqrt( OriginPriceF2 );

    if( F2_1x8_ON ) DRAW_FAN_SQRT( RootStep2 / 8, ColF2_1x8, "1x8",
                                       OriginBarf2, ExtendBars2,
                                       BaseRoot2, DirSign2,
                                       bi, OriginPricef2, LabelfAN2 );

    if( f2_1x4_ON ) DRAW_FAN_SQRT( RootStep2 / 4, Colf2_1x4, "1x4",
                                       OriginBarf2, ExtendBars2,
                                       BaseRoot2, DirSign2,
                                       bi, OriginPricef2, LabelfAN2 );

    if( f2_1x2_ON ) DRAW_FAN_SQRT( RootStep2 / 2, Colf2_1x2, "1x2",
                                       OriginBarf2, ExtendBars2,
                                       BaseRoot2, DirSign2,
                                       bi, OriginPricef2, LabelfAN2 );

    if( f2_1x1_ON ) DRAW_FAN_SQRT( RootStep2, Colf2_1x1, "1x1",
                                       OriginBarf2, ExtendBars2,
                                       BaseRoot2, DirSign2,
                                       bi, OriginPricef2, LabelfAN2 );

    if( f2_2x1_ON ) DRAW_FAN_SQRT( RootStep2 * 2, Colf2_2x1, "2x1",
                                       OriginBarf2, ExtendBars2,
                                       BaseRoot2, DirSign2,
                                       bi, OriginPricef2, LabelfAN2 );

    if( f2_4x1_ON ) DRAW_FAN_SQRT( RootStep2 * 4, Colf2_4x1, "4x1",
                                       OriginBarf2, ExtendBars2,
                                       BaseRoot2, DirSign2,
                                       bi, OriginPricef2, LabelfAN2 );

    if( f2_8x1_ON ) DRAW_FAN_SQRT( RootStep2 * 8, Colf2_8x1, "8x1",
                                       OriginBarf2, ExtendBars2,
                                       BaseRoot2, DirSign2,
                                       bi, OriginPricef2, LabelfAN2 );
}


Plot(C,"",colorAqua,styleCandle);



_SECTION_END();```