Hello Everyone,
For sending order to my broker, it requires a unique Token number for each ticker. I can assign token number at start of afl for the tickers as shown in below afl.
ACC29JUL21FUT = 53184; //Assigned Token Number to ACC29JUL21FUT
BEL29JUL21FUT = 53205; //Assigned Token Number to BEL29JUL21FUT (Just added to show as Token number will be assigned to more than 100 tickers here.)
_SECTION_BEGIN("Angel_Token");
Sym_AB= Name(); //Ticker in Amibroker database (In this example Name() = ACC-I)
Sym = StrTrim( Sym_AB, "-I", 2); //Ticker in Broker terminal
Sym_Fut = Sym+"29JUL21FUT"; //Future Ticker
Filter = 1;
AddtextColumn(Sym_AB,"Ticker in AB ");//Ticker in Amibroker database
AddtextColumn(Sym,"Symbol "); //Ticker in Broker terminal
AddtextColumn(Sym_Fut,"Future Symbol ");//Future Ticker
AddColumn(Sym_Fut,"Token Assigned",1); //This should also return value 53184(Assigned in first line of code) because Sym_Fut = ACC29JUL21FUT, but it is showing error "The function expected an Array here, but found a STRING."
_SECTION_END();
In the last line of above code I want to get the value 53184. Have I missed anything in above code?
What function can I use to return the value of token number which is 53184.?
Thank you.
AddColumn is for numeric output not for Strings.
For String you have to use AddTextColumn.
Filter = status("lastbarinrange");
AddColumn(C, "THIS IS ARRAY", 1.2);
AddColumn(1000, "THIS IS NUMBER", 1.2);
AddTextColumn("Hello World", "This is STRING");
If you want to output value then e.g.
ACC29JUL21FUT = 53184; //Assigned Token Number to ACC29JUL21FUT
BEL29JUL21FUT = 53205; //Assigned Token Number to BEL29JUL21FUT (Just added to show as Token number will be assigned to more than 100 tickers here.)
if ( Name() == "ACC-I" )
token = ACC29JUL21FUT;
//else if ( Name() == "...." )
// token = ...;
else
token = Null;
// Or use switch statement instead of if-else
AddColumn(token,"Token Assigned",1);
Thank you everyone.
I found the solution. With the following code, I got the desired result:
StaticVarSetText("ACC29JUL21FUT","53184"); //Assigned Token Number to ACC29JUL21FUT
StaticVarSetText("BEL29JUL21FUT","53205"); //Assigned Token Number to BEL29JUL21FUT (Just added to show as Token number will be assigned to more than 100 tickers here.)
_SECTION_BEGIN("Angel_Token");
Sym_AB= Name(); //Ticker in Amibroker database (In this example Name() = ACC-I)
Sym = StrTrim( Sym_AB, "-I", 2); //Ticker in Broker terminal
Sym_Fut = Sym+"29JUL21FUT"; //Future Ticker of Symbol
Filter = 1;
AddtextColumn(Sym_AB,"Ticker in AB ");//Ticker in Amibroker database
AddtextColumn(Sym,"Symbol "); //Ticker in Broker terminal
AddtextColumn(Sym_Fut,"Future Symbol ");//Future Ticker of Symbol
AddtextColumn(StaticVarGetText(Sym_Fut),"Token Assigned",1); //With this I am getting the 53184.
_SECTION_END();
That is not a solution but total non sense.
You do not need Static vars in same code.
What a waste.
Everything is dependent on ticker symbol so you can just use Name() function and save lots of code lines and functions.
And again you do not need static vars.
VarSetText("ACC-I","53184"); //Assigned Token Number to ACC29JUL21FUT
VarSetText("BEL-I","53205"); //Assigned Token Number to BEL29JUL21FUT (Just added to show as Token number will be assigned to more than 100 tickers here.)
_SECTION_BEGIN("Angel_Token");
Sym_AB= Name(); //Ticker in Amibroker database (In this example Name() = ACC-I)
Filter = 1;
AddtextColumn(Sym_AB,"Ticker in AB ");//Ticker in Amibroker database
AddtextColumn(VarGetText(Name()),"Token Assigned (...29JUL21FUT)",1); //With this I am getting the 53184.
Thank you very much. Your solution is working perfectly.
I am not an expert in coding. Can you please let me know, why we should not use StaticVarSetText. What are the disadvantages of using StaticVarSetText?