Kano Posted November 3, 2023 Report Share Posted November 3, 2023 Hello everyone , i try for a couple of days to solve the following problem with no success , i will demonstrate it in the next lines in a concise and clear way as much as possible and hope to find an elegant solution. so here we go , consider i have a multiple AFL files (for the sake of simplicity assume there are only 5 files) , each one of them have only one variable , let's call it "iso" each file is named after its ordinal number (1.afl , 2.afl , .. , 5.afl) and the iso variable is equal to the oridinal number of the file in which it exist. (e.g iso in 3.afl would equal to 3) now i try to use #include_once to fetch the content of each file , simply i want to get the value of iso in each file. AFAIK there's no direct way to use a dynamic address path in front of #include so i pursued the following approach My first approach was to use a dynamic string variable as in the following code Color = IIf(Ref(C,-1) < C,colorCustom1,colorCustom2); SetBarFillColor(Color); Plot(C,"Close",colorBlack, styleNoTitle | styleCandle ); _N(Title = StrFormat("{{NAME}} - {{INTERVAL}} - {{DATE}} Open %1.5f , Hi %1.5f , Lo %1.5f , Close %1.5f (%.1f%%) , Vol %s"+"\n"+"{{VALUES}}", O, H, L, C, SelectedValue(ROC(C,1)),NumToStr(V,1.00))); //---------------------------------------------------------------------------------*/ Export_Triggers = ParamTrigger("Start Data Export To A Separate File","Execute"); //--------------------------------------------------------------------------------- iso = 00; FH_Content = AFL_Content = ""; //--------------------------------------------------------------------------------- if (Export_Triggers) { for (i = 01; i <= 5; i++) { //Source_Path = "F:\\ZZ\\T.afl"; AFL_Files_Path = "F:\\ZZ\\"+i+".afl"; //Indirective_Ref = "#"+"Include_Once \""+AFL_Files_Path+"\""; FH = fopen(AFL_Files_Path , "r"); FH_Content = fgets(FH); fclose(FH); //FH = fopen(Source_Path , "w"); fputs(FH_Content,FH); fclose(FH); //FH = fopen(Source_Path , "w"); fputs(Indirective_Ref,FH); fclose(FH); #pragma nocache #include_once AFL_Files_Path _TRACE("iso = "+iso+"\n"); } } My second approach was to use a static string variable that contain address path to a file named T.afl , that file nest #include with the desired path to files where iso variable exist Color = IIf(Ref(C,-1) < C,colorCustom1,colorCustom2); SetBarFillColor(Color); Plot(C,"Close",colorBlack, styleNoTitle | styleCandle ); _N(Title = StrFormat("{{NAME}} - {{INTERVAL}} - {{DATE}} Open %1.5f , Hi %1.5f , Lo %1.5f , Close %1.5f (%.1f%%) , Vol %s"+"\n"+"{{VALUES}}", O, H, L, C, SelectedValue(ROC(C,1)),NumToStr(V,1.00))); //---------------------------------------------------------------------------------*/ Export_Triggers = ParamTrigger("Start Data Export To A Separate File","Execute"); //--------------------------------------------------------------------------------- iso = 00; FH_Content = AFL_Content = ""; //--------------------------------------------------------------------------------- if (Export_Triggers) { for (i = 01; i <= 5; i++) { Source_Path = "F:\\ZZ\\T.afl"; AFL_Files_Path = "F:\\ZZ\\"+i+".afl"; Indirective_Ref = "#"+"Include_Once \""+AFL_Files_Path+"\""; FH = fopen(AFL_Files_Path , "r"); FH_Content = fgets(FH); fclose(FH); //FH = fopen(Source_Path , "w"); fputs(FH_Content,FH); fclose(FH); FH = fopen(Source_Path , "w"); fputs(Indirective_Ref,FH); fclose(FH); #pragma nocache #include_once Source_Path _TRACE("iso = "+iso+"\n"); } } My third approach was to copy the content of each 5 files and paste it into T.afl Color = IIf(Ref(C,-1) < C,colorCustom1,colorCustom2); SetBarFillColor(Color); Plot(C,"Close",colorBlack, styleNoTitle | styleCandle ); _N(Title = StrFormat("{{NAME}} - {{INTERVAL}} - {{DATE}} Open %1.5f , Hi %1.5f , Lo %1.5f , Close %1.5f (%.1f%%) , Vol %s"+"\n"+"{{VALUES}}", O, H, L, C, SelectedValue(ROC(C,1)),NumToStr(V,1.00))); //---------------------------------------------------------------------------------*/ Export_Triggers = ParamTrigger("Start Data Export To A Separate File","Execute"); //--------------------------------------------------------------------------------- iso = 00; FH_Content = AFL_Content = ""; //--------------------------------------------------------------------------------- if (Export_Triggers) { for (i = 01; i <= 5; i++) { Source_Path = "F:\\ZZ\\T.afl"; AFL_Files_Path = "F:\\ZZ\\"+i+".afl"; Indirective_Ref = "#"+"Include_Once \""+AFL_Files_Path+"\""; FH = fopen(AFL_Files_Path , "r"); FH_Content = fgets(FH); fclose(FH); FH = fopen(Source_Path , "w"); fputs(FH_Content,FH); fclose(FH); //FH = fopen(Source_Path , "w"); fputs(Indirective_Ref,FH); fclose(FH); #pragma nocache #include_once Source_Path _TRACE("iso = "+iso+"\n"); } } None of the above approach work as i trace iso and find it is value equal to zero (the initialized value in the beginning of the code) , at this stage i were overwhelmed and have exhausted all of my tricks so i decided to ask for help , what do you think about this kind of problems ? does it have a solution ? Thank you for your patience. Quote Link to comment Share on other sites More sharing options...
⭐ option trader Posted November 4, 2023 Report Share Posted November 4, 2023 just go to Amibroker forum also,quickly will get a solution..😉 Quote Link to comment Share on other sites More sharing options...
Kano Posted November 7, 2023 Author Report Share Posted November 7, 2023 Unfortunately , publishing posts there is exclusive feature for VERIFIED members :/ Quote Link to comment Share on other sites More sharing options...
samesheet Posted November 23, 2023 Report Share Posted November 23, 2023 Are you trying to do that on Metatrader? The snippet looks unusual, never seen something similar on my Hotforex platform. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.