molanis.com/forum - Tools for MetaTrader : The place to ask about the best expert advisor builder, expert advisor downloads, and expert advisor programming

AFTER YOU REGISTER SEND US AN EMAIL TO ACTIVATE YOUR ACCOUNT - Before posting:-1- Please read the user guide -2- Try the examples -3- Search in the forum
It is currently Sat May 11, 2024 2:43 am

All times are UTC - 5 hours




Post new topic Reply to topic  [ 2 posts ] 
Author Message
 Post subject: TCCI custom indicator
PostPosted: Fri Feb 17, 2012 12:09 pm 
Offline

Joined: Wed Jun 29, 2011 3:10 am
Posts: 9
Hi
Would anyone be able to help me to integrate the TCCI custom indicator into a strategy using the icustom TA block?
Im trying to build an EA that opens a buy position when the TCCI turns green and sell position when the TCCI turn red, but am not sure which mode to use and how to write the conditions. Here is the code, any advice much appreciated:

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Red
#property indicator_color2 ForestGreen
#property indicator_color3 Red

extern int Price = 0;
extern int Length = 20;
extern int Displace = 0;
extern int Filter = 0;
extern int Color = 1;
extern int ColorBarBack = 1;
extern double Deviation = 0.0;
double g_ibuf_108[];
double g_ibuf_112[];
double g_ibuf_116[];
double g_ibuf_120[];
double gda_124[];
int g_index_128;
int gi_132;
int gi_136;
int gi_140 = 4;
double gd_144;
double gd_152;
double gd_160;
double gd_168;
double gd_176;
double gd_184;
double gd_192 = 3.1415926535;

int init() {
IndicatorBuffers(4);
SetIndexStyle(0, DRAW_LINE);
SetIndexBuffer(0, g_ibuf_108);
SetIndexStyle(1, DRAW_LINE);
SetIndexBuffer(1, g_ibuf_112);
SetIndexStyle(2, DRAW_LINE);
SetIndexBuffer(2, g_ibuf_116);
SetIndexBuffer(3, g_ibuf_120);
IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS));
string ls_0 = "SaneFX(" + Length + ")";
IndicatorShortName(ls_0);
SetIndexLabel(0, "SaneFX");
SetIndexLabel(1, "Up");
SetIndexLabel(2, "Dn");
SetIndexShift(0, Displace);
SetIndexShift(1, Displace);
SetIndexShift(2, Displace);
SetIndexEmptyValue(0, EMPTY_VALUE);
SetIndexEmptyValue(1, EMPTY_VALUE);
SetIndexEmptyValue(2, EMPTY_VALUE);
SetIndexDrawBegin(0, Length * gi_140 + Length);
SetIndexDrawBegin(1, Length * gi_140 + Length);
SetIndexDrawBegin(2, Length * gi_140 + Length);
gd_144 = 3.0 * gd_192;
gi_132 = Length - 1;
gi_136 = Length * gi_140 + gi_132;
ArrayResize(gda_124, gi_136);
gd_176 = 0;
for (g_index_128 = 0; g_index_128 < gi_136 - 1; g_index_128++) {
if (g_index_128 <= gi_132 - 1) gd_160 = 1.0 * g_index_128 / (gi_132 - 1);
else gd_160 = (g_index_128 - gi_132 + 1) * (2.0 * gi_140 - 1.0) / (gi_140 * Length - 1.0) + 1.0;
gd_152 = MathCos(gd_192 * gd_160);
gd_184 = 1.0 / (gd_144 * gd_160 + 1.0);
if (gd_160 <= 0.5) gd_184 = 1;
gda_124[g_index_128] = gd_184 * gd_152;
gd_176 += gda_124[g_index_128];
}
return (0);
}

int start() {
int li_12;
double ld_16;
int l_ind_counted_8 = IndicatorCounted();
if (l_ind_counted_8 > 0) li_12 = Bars - l_ind_counted_8;
if (l_ind_counted_8 < 0) return (0);
if (l_ind_counted_8 == 0) li_12 = Bars - gi_136 - 1;
if (l_ind_counted_8 < 1) {
for (int l_index_0 = 1; l_index_0 < Length * gi_140 + Length; l_index_0++) {
g_ibuf_108[Bars - l_index_0] = 0;
g_ibuf_112[Bars - l_index_0] = 0;
g_ibuf_116[Bars - l_index_0] = 0;
}
}
for (int li_4 = li_12; li_4 >= 0; li_4--) {
gd_168 = 0;
for (l_index_0 = 0; l_index_0 <= gi_136 - 1; l_index_0++) {
if (Price == 0) ld_16 = Close[li_4 + l_index_0];
else {
if (Price == 1) ld_16 = Open[li_4 + l_index_0];
else {
if (Price == 2) ld_16 = High[li_4 + l_index_0];
else {
if (Price == 3) ld_16 = Low[li_4 + l_index_0];
else {
if (Price == 4) ld_16 = (High[li_4 + l_index_0] + (Low[li_4 + l_index_0])) / 2.0;
else {
if (Price == 5) ld_16 = (High[li_4 + l_index_0] + (Low[li_4 + l_index_0]) + (Close[li_4 + l_index_0])) / 3.0;
else
if (Price == 6) ld_16 = (High[li_4 + l_index_0] + (Low[li_4 + l_index_0]) + 2.0 * (Close[li_4 + l_index_0])) / 4.0;
}
}
}
}
}
gd_168 += gda_124[l_index_0] * ld_16;
}
if (gd_176 > 0.0) g_ibuf_108[li_4] = (Deviation / 100.0 + 1.0) * gd_168 / gd_176;
if (Filter > 0)
if (MathAbs(g_ibuf_108[li_4] - (g_ibuf_108[li_4 + 1])) < Filter * Point) g_ibuf_108[li_4] = g_ibuf_108[li_4 + 1];
if (Color > 0) {
g_ibuf_120[li_4] = g_ibuf_120[li_4 + 1];
if (g_ibuf_108[li_4] - (g_ibuf_108[li_4 + 1]) > Filter * Point) g_ibuf_120[li_4] = 1;
if (g_ibuf_108[li_4 + 1] - g_ibuf_108[li_4] > Filter * Point) g_ibuf_120[li_4] = -1;
if (g_ibuf_120[li_4] > 0.0) {
g_ibuf_112[li_4] = g_ibuf_108[li_4];
if (g_ibuf_120[li_4 + ColorBarBack] < 0.0) g_ibuf_112[li_4 + ColorBarBack] = g_ibuf_108[li_4 + ColorBarBack];
g_ibuf_116[li_4] = EMPTY_VALUE;
}
if (g_ibuf_120[li_4] < 0.0) {
g_ibuf_116[li_4] = g_ibuf_108[li_4];
if (g_ibuf_120[li_4 + ColorBarBack] > 0.0) g_ibuf_116[li_4 + ColorBarBack] = g_ibuf_108[li_4 + ColorBarBack];
g_ibuf_112[li_4] = EMPTY_VALUE;
}
}
}
return (0);
}


Top
 Profile  
 
 Post subject: Re: TCCI custom indicator
PostPosted: Sat Feb 18, 2012 9:01 am 
Offline

Joined: Tue Dec 22, 2009 12:22 am
Posts: 1761
Due to copy right policies we cannot help you with that file. Most files of that type go against copyright laws.

If you need help try to get the original code.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 

All times are UTC - 5 hours


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by Molanis © 2009