CCFp_v1[1].0.2
Download scriptThis script is designed as a specialized dashboard for traders who need to monitor the relative strength and price momentum of various major currencies simultaneously. Rather than looking at one currency pair at a time, it aggregates data to show you how different currencies (USD, EUR, GBP, CHF, AUD, CAD, JPY, and NZD) are performing against each other in real-time.
How the Logic Works
1. Multi-Currency Data Gathering The script automatically looks at several major currency pairs. It calculates "Moving Averages" (a smoothed average of price over time) for these pairs to filter out minor market noise and focus on the actual trend. It adjusts its internal calculation based on the specific timeframe you are viewing (e.g., 1-minute, 1-hour, or daily charts) to ensure the data remains relevant to your current analysis.
2. Relative Strength Calculations The core "intelligence" of this script lies in how it compares these currencies. Instead of just showing you where a price is, it performs complex math to determine the relative strength of one currency against all others.
- For example, to determine the "strength" of the USD, it looks at its relationship with the Euro, British Pound, Australian Dollar, and others, combining those values into a single score.
- It does the same for every other currency in the list, ensuring that if one currency is getting stronger while another is getting weaker, the dashboard captures that dynamic.
3. Dynamic Visual Indicators The script translates these complex mathematical scores into a simple visual display:
- Color-Coded Lines: Each currency is assigned a specific color, making it easy to distinguish between them at a glance on your chart window.
- Trend Symbols: The script looks at the most recent price movements (the last two closed candles). It then places symbols like "+", "-", or "=" on the screen.
- A "+" suggests upward momentum for that currency.
- A "-" suggests downward momentum.
- An "=" indicates that the price is currently neutral or sideways.
4. Automated Compatibility The script is built to be "smart" regarding different broker platforms. It includes logic to automatically detect specific naming conventions (like adding an "m" suffix to currency symbols), ensuring that the data flows correctly regardless of which trading platform or broker you are using.
Summary for the User
In simple terms, this tool acts as a Currency Heatmap. It does the heavy lifting of scanning multiple charts simultaneously and boils all that information down into a single dashboard. This allows you to see at a glance which currencies are gaining power and which are losing it, helping you identify potential trading opportunities faster than manually checking every individual pair.
//+------------------------------------------------------------------+
//| CCFp_v1.0.2.mq4 |
//| SemSemFX@rambler.ru |
//| http://onix-trade.net/forum/index.php?showtopic=107 |
//| Modifed version by Skyline on 09 Oct 2008 |
//+------------------------------------------------------------------+
// Rev. v1.0.1 ** Added +/-/= symbols to show strength of last 2 closed candles
// ** Added IBFX symbols management
// Rev. v1.0.2 ** Fixed symbols paint issue whenever a new candle starts
#property copyright "SemSemFX@rambler.ru"
#property link "http://onix-trade.net/forum/index.php?showtopic=107"
//----
string Indicator_Name = "CCFp:";
int Objs = 0;
//----
#property indicator_separate_window
#property indicator_buffers 8
extern int MA_Method = 3;
extern int Price = 6;
extern int Fast = 3;
extern int Slow = 5;
extern bool USD = 1;
extern bool EUR = 1;
extern bool GBP = 1;
extern bool CHF = 1;
extern bool JPY = 1;
extern bool AUD = 1;
extern bool CAD = 1;
extern bool NZD = 1;
extern color Color_USD = Green;
extern color Color_EUR = Aqua;
extern color Color_GBP = Red;
extern color Color_CHF = Chocolate;
extern color Color_JPY = Maroon;
extern color Color_AUD = DarkOrange;
extern color Color_CAD = Purple;
extern color Color_NZD = Teal;
extern int Line_Thickness = 2;
extern int All_Bars = 0;
extern int Last_Bars = 0;
//----
double arrUSD[];
double arrEUR[];
double arrGBP[];
double arrCHF[];
double arrJPY[];
double arrAUD[];
double arrCAD[];
double arrNZD[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
if(USD)
Indicator_Name = StringConcatenate(Indicator_Name, " USD");
if(EUR)
Indicator_Name = StringConcatenate(Indicator_Name, " EUR");
if(GBP)
Indicator_Name = StringConcatenate(Indicator_Name, " GBP");
if(CHF)
Indicator_Name = StringConcatenate(Indicator_Name, " CHF");
if(AUD)
Indicator_Name = StringConcatenate(Indicator_Name, " AUD");
if(CAD)
Indicator_Name = StringConcatenate(Indicator_Name, " CAD");
if(JPY)
Indicator_Name = StringConcatenate(Indicator_Name, " JPY");
if(NZD)
Indicator_Name = StringConcatenate(Indicator_Name, " NZD");
IndicatorShortName(Indicator_Name);
int width = 0;
if(0 > StringFind(Symbol(), "USD", 0))
width = 1;
else
width = Line_Thickness;
SetIndexStyle(0, DRAW_LINE, DRAW_LINE, width, Color_USD);
SetIndexBuffer(0, arrUSD);
SetIndexLabel(0, "USD");
if(0 > StringFind(Symbol(), "EUR", 0))
width = 1;
else
width = Line_Thickness;
SetIndexStyle(1, DRAW_LINE, DRAW_LINE, width, Color_EUR);
SetIndexBuffer(1, arrEUR);
SetIndexLabel(1, "EUR");
if(0 > StringFind(Symbol(), "GBP", 0))
width = 1;
else
width = Line_Thickness;
SetIndexStyle(2, DRAW_LINE, DRAW_LINE, width, Color_GBP);
SetIndexBuffer(2, arrGBP);
SetIndexLabel(2, "GBP");
if(0 > StringFind(Symbol(), "CHF", 0))
width = 1;
else
width = Line_Thickness;
SetIndexStyle(3, DRAW_LINE, DRAW_LINE, width, Color_CHF);
SetIndexBuffer(3, arrCHF);
SetIndexLabel(3, "CHF");
if(0 > StringFind(Symbol(), "JPY", 0))
width = 1;
else
width = Line_Thickness;
SetIndexStyle(4, DRAW_LINE, DRAW_LINE, width, Color_JPY);
SetIndexBuffer(4, arrJPY);
SetIndexLabel(4, "JPY");
if(0 > StringFind(Symbol(), "AUD", 0))
width = 1;
else
width = Line_Thickness;
SetIndexStyle(5, DRAW_LINE, DRAW_LINE, width, Color_AUD);
SetIndexBuffer(5, arrAUD);
SetIndexLabel(5, "AUD");
if(0 > StringFind(Symbol(), "CAD", 0))
width = 1;
else
width = Line_Thickness;
SetIndexStyle(6, DRAW_LINE, DRAW_LINE, width, Color_CAD);
SetIndexBuffer(6, arrCAD);
SetIndexLabel(6, "CAD");
if(0 > StringFind(Symbol(), "NZD", 0))
width = 1;
else
width = Line_Thickness;
SetIndexStyle(7, DRAW_LINE, DRAW_LINE, width, Color_NZD);
SetIndexBuffer(7, arrNZD);
SetIndexLabel(7, "NZD");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
for(int i = 0; i < Objs; i++)
{
if(!ObjectDelete(Indicator_Name + i))
Print("error: code #", GetLastError());
}
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
string sAUDUSD,sEURUSD,sUSDCHF,sNZDUSD,sGBPUSD,sUSDJPY,sUSDCAD;
int limit;
int counted_bars = IndicatorCounted();
//---- checking for possible errors
if(counted_bars < 0)
return(-1);
//---- the last bar will be recounted
if(All_Bars < 1)
All_Bars = Bars;
if(counted_bars > 0 && Last_Bars > 0)
counted_bars -= Last_Bars;
limit = All_Bars - counted_bars;
//---- IBFX Changes
if (StringFind(Symbol(),"m") != -1)
{
sAUDUSD = "AUDUSDm";
sEURUSD = "EURUSDm";
sUSDCHF = "USDCHFm";
sNZDUSD = "NZDUSDm";
sGBPUSD = "GBPUSDm";
sUSDJPY = "USDJPYm";
sUSDCAD = "USDCADm";
}
else
{
sAUDUSD = "AUDUSD";
sEURUSD = "EURUSD";
sUSDCHF = "USDCHF";
sNZDUSD = "NZDUSD";
sGBPUSD = "GBPUSD";
sUSDJPY = "USDJPY";
sUSDCAD = "USDCAD";
}
//---- main cycle
for(int i = 0; i < limit; i++)
{
// Preliminary calculation
if(EUR)
{
double EURUSD_Fast = ma(sEURUSD, Fast, MA_Method, Price, i);
double EURUSD_Slow = ma(sEURUSD, Slow, MA_Method, Price, i);
if(!EURUSD_Fast || !EURUSD_Slow)
break;
}
if(GBP)
{
double GBPUSD_Fast = ma(sGBPUSD, Fast, MA_Method, Price, i);
double GBPUSD_Slow = ma(sGBPUSD, Slow, MA_Method, Price, i);
if(!GBPUSD_Fast || !GBPUSD_Slow)
break;
}
if(AUD)
{
double AUDUSD_Fast = ma(sAUDUSD, Fast, MA_Method, Price, i);
double AUDUSD_Slow = ma(sAUDUSD, Slow, MA_Method, Price, i);
if(!AUDUSD_Fast || !AUDUSD_Slow)
break;
}
if(NZD)
{
double NZDUSD_Fast = ma(sNZDUSD, Fast, MA_Method, Price, i);
double NZDUSD_Slow = ma(sNZDUSD, Slow, MA_Method, Price, i);
if(!NZDUSD_Fast || !NZDUSD_Slow)
break;
}
if(CAD)
{
double USDCAD_Fast = ma(sUSDCAD, Fast, MA_Method, Price, i);
double USDCAD_Slow = ma(sUSDCAD, Slow, MA_Method, Price, i);
if(!USDCAD_Fast || !USDCAD_Slow)
break;
}
if(CHF)
{
double USDCHF_Fast = ma(sUSDCHF, Fast, MA_Method, Price, i);
double USDCHF_Slow = ma(sUSDCHF, Slow, MA_Method, Price, i);
if(!USDCHF_Fast || !USDCHF_Slow)
break;
}
if(JPY)
{
double USDJPY_Fast = ma(sUSDJPY, Fast, MA_Method, Price, i);
double USDJPY_Slow = ma(sUSDJPY, Slow, MA_Method, Price, i);
if(!USDJPY_Fast || !USDJPY_Slow)
break;
}
// calculation of currencies
if(USD)
{
arrUSD[i] = 0;
if(EUR)
arrUSD[i] += EURUSD_Slow / EURUSD_Fast - 1;
if(GBP)
arrUSD[i] += GBPUSD_Slow / GBPUSD_Fast - 1;
if(AUD)
arrUSD[i] += AUDUSD_Slow / AUDUSD_Fast - 1;
if(NZD)
arrUSD[i] += NZDUSD_Slow / NZDUSD_Fast - 1;
if(CHF)
arrUSD[i] += USDCHF_Fast / USDCHF_Slow - 1;
if(CAD)
arrUSD[i] += USDCAD_Fast / USDCAD_Slow - 1;
if(JPY)
arrUSD[i] += USDJPY_Fast / USDJPY_Slow - 1;
}// end if USD
if(EUR)
{
arrEUR[i] = 0;
if(USD)
arrEUR[i] += EURUSD_Fast / EURUSD_Slow - 1;
if(GBP)
arrEUR[i] += (EURUSD_Fast / GBPUSD_Fast) /
(EURUSD_Slow/GBPUSD_Slow) - 1;
if(AUD)
arrEUR[i] += (EURUSD_Fast / AUDUSD_Fast) /
(EURUSD_Slow/AUDUSD_Slow) - 1;
if(NZD)
arrEUR[i] += (EURUSD_Fast / NZDUSD_Fast) /
(EURUSD_Slow/NZDUSD_Slow) - 1;
if(CHF)
arrEUR[i] += (EURUSD_Fast*USDCHF_Fast) /
(EURUSD_Slow*USDCHF_Slow) - 1;
if(CAD)
arrEUR[i] += (EURUSD_Fast*USDCAD_Fast) /
(EURUSD_Slow*USDCAD_Slow) - 1;
if(JPY)
arrEUR[i] += (EURUSD_Fast*USDJPY_Fast) /
(EURUSD_Slow*USDJPY_Slow) - 1;
}// end if EUR
if(GBP)
{
arrGBP[i] = 0;
if(USD)
arrGBP[i] += GBPUSD_Fast / GBPUSD_Slow - 1;
if(EUR)
arrGBP[i] += (EURUSD_Slow / GBPUSD_Slow) /
(EURUSD_Fast / GBPUSD_Fast) - 1;
if(AUD)
arrGBP[i] += (GBPUSD_Fast / AUDUSD_Fast) /
(GBPUSD_Slow / AUDUSD_Slow) - 1;
if(NZD)
arrGBP[i] += (GBPUSD_Fast / NZDUSD_Fast) /
(GBPUSD_Slow / NZDUSD_Slow) - 1;
if(CHF)
arrGBP[i] += (GBPUSD_Fast*USDCHF_Fast) /
(GBPUSD_Slow*USDCHF_Slow) - 1;
if(CAD)
arrGBP[i] += (GBPUSD_Fast*USDCAD_Fast) /
(GBPUSD_Slow*USDCAD_Slow) - 1;
if(JPY)
arrGBP[i] += (GBPUSD_Fast*USDJPY_Fast) /
(GBPUSD_Slow*USDJPY_Slow) - 1;
}// end if GBP
if(AUD)
{
arrAUD[i] = 0;
if(USD)
arrAUD[i] += AUDUSD_Fast / AUDUSD_Slow - 1;
if(EUR)
arrAUD[i] += (EURUSD_Slow / AUDUSD_Slow) /
(EURUSD_Fast / AUDUSD_Fast) - 1;
if(GBP)
arrAUD[i] += (GBPUSD_Slow / AUDUSD_Slow) /
(GBPUSD_Fast / AUDUSD_Fast) - 1;
if(NZD)
arrAUD[i] += (AUDUSD_Fast/NZDUSD_Fast) /
(AUDUSD_Slow / NZDUSD_Slow) - 1;
if(CHF)
arrAUD[i] += (AUDUSD_Fast*USDCHF_Fast) /
(AUDUSD_Slow*USDCHF_Slow) - 1;
if(CAD)
arrAUD[i] += (AUDUSD_Fast*USDCAD_Fast) /
(AUDUSD_Slow*USDCAD_Slow) - 1;
if(JPY)
arrAUD[i] += (AUDUSD_Fast*USDJPY_Fast) /
(AUDUSD_Slow*USDJPY_Slow) - 1;
}// end if AUD
if(NZD)
{
arrNZD[i] = 0;
if(USD)
arrNZD[i] += NZDUSD_Fast / NZDUSD_Slow - 1;
if(EUR)
arrNZD[i] += (EURUSD_Slow / NZDUSD_Slow) /
(EURUSD_Fast/NZDUSD_Fast) - 1;
if(GBP)
arrNZD[i] += (GBPUSD_Slow / NZDUSD_Slow) /
(GBPUSD_Fast / NZDUSD_Fast) - 1;
if(AUD)
arrNZD[i] += (AUDUSD_Slow / NZDUSD_Slow) /
(AUDUSD_Fast / NZDUSD_Fast) - 1;
if(CHF)
arrNZD[i] += (NZDUSD_Fast*USDCHF_Fast) /
(NZDUSD_Slow*USDCHF_Slow) - 1;
if(CAD)
arrNZD[i] += (NZDUSD_Fast*USDCAD_Fast) /
(NZDUSD_Slow*USDCAD_Slow) - 1;
if(JPY)
arrNZD[i] += (NZDUSD_Fast*USDJPY_Fast) /
(NZDUSD_Slow*USDJPY_Slow) - 1;
}// end if NZD
if(CAD)
{
arrCAD[i] = 0;
if(USD)
arrCAD[i] += USDCAD_Slow / USDCAD_Fast - 1;
if(EUR)
arrCAD[i] += (EURUSD_Slow*USDCAD_Slow) /
(EURUSD_Fast*USDCAD_Fast) - 1;
if(GBP)
arrCAD[i] += (GBPUSD_Slow*USDCAD_Slow) /
(GBPUSD_Fast*USDCAD_Fast) - 1;
if(AUD)
arrCAD[i] += (AUDUSD_Slow*USDCAD_Slow) /
(AUDUSD_Fast*USDCAD_Fast) - 1;
if(NZD)
arrCAD[i] += (NZDUSD_Slow*USDCAD_Slow) /
(NZDUSD_Fast*USDCAD_Fast) - 1;
if(CHF)
arrCAD[i] += (USDCHF_Fast / USDCAD_Fast) /
(USDCHF_Slow / USDCAD_Slow) - 1;
if(JPY)
arrCAD[i] += (USDJPY_Fast / USDCAD_Fast) /
(USDJPY_Slow / USDCAD_Slow) - 1;
}// end if CAD
if(CHF)
{
arrCHF[i] = 0;
if(USD)
arrCHF[i] += USDCHF_Slow / USDCHF_Fast - 1;
if(EUR)
arrCHF[i] += (EURUSD_Slow*USDCHF_Slow) /
(EURUSD_Fast*USDCHF_Fast) - 1;
if(GBP)
arrCHF[i] += (GBPUSD_Slow*USDCHF_Slow) /
(GBPUSD_Fast*USDCHF_Fast) - 1;
if(AUD)
arrCHF[i] += (AUDUSD_Slow*USDCHF_Slow) /
(AUDUSD_Fast*USDCHF_Fast) - 1;
if(NZD)
arrCHF[i] += (NZDUSD_Slow*USDCHF_Slow) /
(NZDUSD_Fast*USDCHF_Fast) - 1;
if(CAD)
arrCHF[i] += (USDCHF_Slow / USDCAD_Slow) /
(USDCHF_Fast / USDCAD_Fast) - 1;
if(JPY)
arrCHF[i] += (USDJPY_Fast / USDCHF_Fast) /
(USDJPY_Slow / USDCHF_Slow) - 1;
}// end if CHF
if(JPY)
{
arrJPY[i] = 0;
if(USD)
arrJPY[i] += USDJPY_Slow / USDJPY_Fast - 1;
if(EUR)
arrJPY[i] += (EURUSD_Slow*USDJPY_Slow) /
(EURUSD_Fast*USDJPY_Fast) - 1;
if(GBP)
arrJPY[i] += (GBPUSD_Slow*USDJPY_Slow) /
(GBPUSD_Fast*USDJPY_Fast) - 1;
if(AUD)
arrJPY[i] += (AUDUSD_Slow*USDJPY_Slow) /
(AUDUSD_Fast*USDJPY_Fast) - 1;
if(NZD)
arrJPY[i] += (NZDUSD_Slow*USDJPY_Slow) /
(NZDUSD_Fast*USDJPY_Fast) - 1;
if(CAD)
arrJPY[i] += (USDJPY_Slow/USDCAD_Slow) /
(USDJPY_Fast/USDCAD_Fast) - 1;
if(CHF)
arrJPY[i] += (USDJPY_Slow/USDCHF_Slow) /
(USDJPY_Fast/USDCHF_Fast) - 1;
}// end if JPY
}//end block for(int i=0; i<limit; i++)
int cur = 0;
int st = 23;
if(USD)
{
if (arrUSD[2]<arrUSD[1]) sl("SymbUSD","+", cur, Color_USD);
if (arrUSD[2]>arrUSD[1]) sl("SymbUSD","-", cur, Color_USD);
if (arrUSD[2]==arrUSD[1]) sl("SymbUSD","=", cur, Color_USD);
cur += st;
}
if(EUR)
{
if (arrEUR[2]<arrEUR[1]) sl("SymbEUR","+", cur, Color_EUR);
if (arrEUR[2]>arrEUR[1]) sl("SymbEUR","-", cur, Color_EUR);
if (arrEUR[2]==arrEUR[1]) sl("SymbEUR","=", cur, Color_EUR);
cur += st;
}
if(GBP)
{
if (arrGBP[2]<arrGBP[1]) sl("SymbGBP","+", cur, Color_GBP);
if (arrGBP[2]>arrGBP[1]) sl("SymbGBP","-", cur, Color_GBP);
if (arrGBP[2]==arrGBP[1]) sl("SymbGBP","=", cur, Color_GBP);
cur += st;
}
if(CHF)
{
if (arrCHF[2]<arrCHF[1]) sl("SymbCHF","+", cur, Color_CHF);
if (arrCHF[2]>arrCHF[1]) sl("SymbCHF","-", cur, Color_CHF);
if (arrCHF[2]==arrCHF[1]) sl("SymbCHF","=", cur, Color_CHF);
cur += st;
}
if(AUD)
{
if (arrAUD[2]<arrAUD[1]) sl("SymbAUD","+", cur, Color_AUD);
if (arrAUD[2]>arrAUD[1]) sl("SymbAUD","-", cur, Color_AUD);
if (arrAUD[2]==arrAUD[1]) sl("SymbAUD","=", cur, Color_AUD);
cur += st;
}
if(CAD)
{
if (arrCAD[2]<arrCAD[1]) sl("SymbCAD","+", cur, Color_CAD);
if (arrCAD[2]>arrCAD[1]) sl("SymbCAD","-", cur, Color_CAD);
if (arrCAD[2]==arrCAD[1]) sl("SymbCAD","=", cur, Color_CAD);
cur += st;
}
if(JPY)
{
if (arrJPY[2]<arrJPY[1]) sl("SymbJPY","+", cur, Color_JPY);
if (arrJPY[2]>arrJPY[1]) sl("SymbJPY","-", cur, Color_JPY);
if (arrJPY[2]==arrJPY[1]) sl("SymbJPY","=", cur, Color_JPY);
cur += st;
}
if(NZD)
{
if (arrNZD[2]<arrNZD[1]) sl("SymbNZD","+", cur, Color_NZD);
if (arrNZD[2]>arrNZD[1]) sl("SymbNZD","-", cur, Color_NZD);
if (arrNZD[2]==arrNZD[1]) sl("SymbNZD","=", cur, Color_NZD);
cur += st;
}
//----
return(0);
}
//+------------------------------------------------------------------+
//| Subroutines |
//+------------------------------------------------------------------+
double ma(string sym, int per, int Mode, int Price, int i)
{
double res = 0;
int k = 1;
int ma_shift = 0;
int tf = 0;
switch(Period())
{
case 1: res += iMA(sym, tf, per*k, ma_shift, Mode, Price, i);
k += 5;
case 5: res += iMA(sym, tf, per*k, ma_shift, Mode, Price, i);
k += 3;
case 15: res += iMA(sym, tf, per*k, ma_shift, Mode, Price, i);
k += 2;
case 30: res += iMA(sym, tf, per*k, ma_shift, Mode, Price, i);
k += 2;
case 60: res += iMA(sym, tf, per*k, ma_shift, Mode, Price, i);
k += 4;
case 240: res += iMA(sym, tf, per*k, ma_shift, Mode, Price, i);
k += 6;
case 1440: res += iMA(sym, tf, per*k, ma_shift, Mode, Price, i);
k += 4;
case 10080: res += iMA(sym, tf, per*k, ma_shift, Mode, Price, i);
k +=4;
case 43200: res += iMA(sym, tf, per*k, ma_shift, Mode, Price, i);
}
return(res);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void sl(string IndicatoreName, string sym, int y, color col)
{
int window = WindowFind(Indicator_Name);
string ID = Indicator_Name+Objs;
int tmp = 10 + y;
Objs++;
if (ObjectFind(IndicatoreName)==-1)
{
if(ObjectCreate(IndicatoreName, OBJ_LABEL, window, 0, 0))
{
//ObjectDelete(ID);
ObjectSet(IndicatoreName, OBJPROP_XDISTANCE, y + 35);
ObjectSet(IndicatoreName, OBJPROP_YDISTANCE, 10);
ObjectSetText(IndicatoreName, sym, 15, "Arial Black", col);
}
}
else
{
ObjectSet(IndicatoreName, OBJPROP_XDISTANCE, y + 35);
ObjectSet(IndicatoreName, OBJPROP_YDISTANCE, 10);
ObjectSetText(IndicatoreName, sym, 15, "Arial Black", col);
}
/* if(ObjectCreate(ID, OBJ_LABEL, window, 0, 0))
{
//ObjectDelete(ID);
ObjectSet(ID, OBJPROP_XDISTANCE, y + 35);
ObjectSet(ID, OBJPROP_YDISTANCE, 10);
ObjectSetText(ID, sym, 15, "Arial Black", col);
}
*/
}
//+------------------------------------------------------------------+
Comments