Un dilettante allo sbaraglio

Eccolo qua :




//+------------------------------------------------------------------+
// SchaffTrendCycle.mq4 |
//| Copyright © 2011, EarnForex.com |
//| Forex Trading Information, Learn About Forex Trading |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, EarnForex.com"
#property link "http://www.earnforex.com"

/*
Schaff Trend Cycle - Cyclical Stoch over Stoch over MACD.
Falling below 75 is a sell signal.
Rising above 25 is a buy signal.
Developed by Doug Schaff.
Code adapted from the original TradeStation EasyLanguage version.
*/

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_minimum 0
#property indicator_maximum 100
#property indicator_level1 25
#property indicator_level2 75
#property indicator_width1 2
#property indicator_style1 STYLE_SOLID
#property indicator_color1 DarkOrchid

//---- Input Parameters
extern int MAShort = 23;
extern int MALong = 50;
extern int Cycle = 10;

//---- Global Variables
double Factor = 0.5;
int BarsRequired;

//---- Buffers
double MACD[];
double ST[];
double ST2[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorShortName("STC(" + MAShort + ", " + MALong + ", " + Cycle + ")");

IndicatorBuffers(3);
SetIndexBuffer(0, ST2);
SetIndexBuffer(1, ST);
SetIndexBuffer(2, MACD);

SetIndexDrawBegin(0, MALong + Cycle * 2);

BarsRequired = MALong + Cycle * 2;

return(0);
}

//+------------------------------------------------------------------+
//| Schaff Trend Cycle |
//+------------------------------------------------------------------+
int start()
{

if (Bars <= BarsRequired) return(0);

int counted_bars = IndicatorCounted();

double LLV, HHV;
int shift, n = 1, i;
// Static variables are used to flag that we already have calculated curves from the previous indicator run
static bool st1_pass = false;
static bool st2_pass = false;
int st1_count = 0;
bool check_st1 = false, check_st2 = false;

if (counted_bars < BarsRequired)
{
for (i = 1; i <= BarsRequired; i++) ST2[Bars - i] = 0;
for (i = 1; i <= BarsRequired; i++) ST[Bars - i] = 0;
}

if (counted_bars > 0) counted_bars--;

shift = Bars - counted_bars + BarsRequired - MALong;

if (shift > Bars - 1) shift = Bars - 1;

while (shift >= 0)
{
double MA_Short = iMA(NULL, 0, MAShort, 0, MODE_EMA, PRICE_CLOSE, shift);
double MA_Long = iMA(NULL, 0, MALong, 0, MODE_EMA, PRICE_CLOSE, shift);
MACD[shift] = MA_Short - MA_Long;

if (n >= Cycle) check_st1 = true;
else n++;

if (check_st1)
{
// Finding Max and Min on Cycle of MA differrences (MACD)
for (i = 0; i < Cycle; i++)
{
if (i == 0)
{
LLV = MACD[shift + i];
HHV = MACD[shift + i];
}
else
{
if (LLV > MACD[shift + i]) LLV = MACD[shift + i];
if (HHV < MACD[shift + i]) HHV = MACD[shift + i];
}
}
// Calculating first Stochastic
if (HHV - LLV != 0) ST[shift] = ((MACD[shift] - LLV) / (HHV - LLV)) * 100;
else {ST[shift] = ST[shift + 1];}

// Smoothing first Stochastic
if (st1_pass) ST[shift] = Factor * (ST[shift] - ST[shift + 1]) + ST[shift + 1];
st1_pass = true;

// Have enough elements of first Stochastic to proceed to second
if (st1_count >= Cycle) check_st2 = true;
else st1_count++;

if (check_st2)
{
// Finding Max and Min on Cycle of first smoothed Stoch
for (i = 0; i < Cycle; i++)
{
if (i == 0)
{
LLV = ST[shift + i];
HHV = ST[shift + i];
}
else
{
if (LLV > ST[shift + i]) LLV = ST[shift + i];
if (HHV < ST[shift + i]) HHV = ST[shift + i];
}
}
// Calculating second Stochastic
if (HHV - LLV != 0) ST2[shift] = ((ST[shift] - LLV) / (HHV - LLV)) * 100;
else {ST2[shift] = ST2[shift + 1];}

// Smoothing second Stochastic
if (st2_pass) ST2[shift] = Factor * (ST2[shift] - ST2[shift + 1]) + ST2[shift + 1];
st2_pass = true;
}
}
shift--;
}

return(0);
}
//+----------------------------------------------------


perdona la mia grossa ignoranza...ma come faccio a metterla questa formula?
 
Oppure lo cerchi in rete.
Non so se sai come si fa, apri META EDITOR, lo incolli nella finestra e lo compili.
Dovrebbe esere così :D
 
Allora apri metaeditor, il tasto giallo col !
Poi devi copiare questa roba e incollarla nella finestra, ora non ricordo esattamente se devi fare Nuovo , indicatore personalizzato, poi devi fare COMPILA.
Sotto ti appare un ok no errors , una cosa simile.
Poi chiudi tutto e riapri la piattaforma, poi vai nella sezione degli indicatori personali e lo trovi, e poi lo attacchi sui grafici.

Prova a smanettare un po', se ci sono riuscito io ce la fai anche tu.
 
ho aperto metaeditor copiato su indicatori personalizzati la formula nella parte parametri,poi mi chiedo settaggio minimo e massimo...cosa metto lì
 
oppure fai così:
vai nella cartella dove hai installato il programma di MT4
es: C:\Program Files\MetaTrader - ActivTrades\experts\indicators
e ci copi il file in allegato (dopo averlo decompresso)
chiudi la piattaforma e riapri e ti trovi tra gli indicatori anche lo shaff,
doppio click per portarlo sul grafico.
ciao
 

Allegati

oppure fai così:
vai nella cartella dove hai installato il programma di MT4
es: C:\Program Files\MetaTrader - ActivTrades\experts\indicators
e ci copi il file in allegato (dopo averlo decompresso)
chiudi la piattaforma e riapri e ti trovi tra gli indicatori anche lo shaff,
doppio click per portarlo sul grafico.
ciao


Thx 1000
 
oppure fai così:
vai nella cartella dove hai installato il programma di MT4
es: C:\Program Files\MetaTrader - ActivTrades\experts\indicators
e ci copi il file in allegato (dopo averlo decompresso)
chiudi la piattaforma e riapri e ti trovi tra gli indicatori anche lo shaff,
doppio click per portarlo sul grafico.
ciao


grande ci sono riuscito:up::up:
grazie ragazzi..ora devo aggiungere che medie mobili??
 

Users who are viewing this thread

Back
Alto