i) Broker time fixed to TimeCurrent()
Code: Select all
SM("Broker time = " + TimeToStr(TimeCurrent(), TIME_DATE|TIME_SECONDS) + ": Local time = " + TimeToStr(TimeLocal(), TIME_DATE|TIME_SECONDS) + NL );Code: Select all
OrderSend(symbol, type, lotsize, NormalizeDouble(price,Digits), slippage, 0, 0, comment, MagicNumber, expiry, col);- No changes made to the shell code as it seemed to work correctly with v1.1.3.
iv) Added a function GetNewCSS() that uses pass by reference to get CSS values and also tick volume
Code: Select all
void GetNewCSS(double& css1, double& css2, double& sum, double& vol, double index1, double index2, int shift)
{
// Initialize
double myCSS[];
double myVol[];
// Call library
libCSS.getNewCSS( myCSS, myVol, CssTf, VolTf, shift, true );
int currencyIndex1 = NormalizeDouble( index1, 0 );
int currencyIndex2 = NormalizeDouble( index2, 0 );
css1 = myCSS[currencyIndex1];
css2 = myCSS[currencyIndex2];
sum = 0;
for(int i=0; i<ArraySize(CurrNames); i++)
sum = sum + MathAbs(myCSS[i]);
vol = 0;
for(i=0; i<ArraySize(CurrNames); i++)
vol = vol + myVol[i];
}Code: Select all
void libCSS.getNewCSS( double& css[], double& vol[], int tf, int volTf, int shift, bool flushCache = false )
{
static double volume;
if ( flushCache || volume != iVolume(libCSS.cacheSymbol, libCSS.cacheTimeframe, 0) )
{
int i;
ArrayInitialize(libCSS.currencyValues, 0.0);
ArrayResize( vol, libCSS.CURRENCYCOUNT );
// Get Slope for all symbols and totalize for all currencies
for ( i = 0; i < libCSS.symbolCount; i++ )
{
double slope = libCSS.getSlope(libCSS.symbolNames[i], tf, shift);
libCSS.currencyValues[libCSS.getCurrencyIndex(StringSubstr(libCSS.symbolNames[i], 0, 3))] += slope;
libCSS.currencyValues[libCSS.getCurrencyIndex(StringSubstr(libCSS.symbolNames[i], 3, 3))] -= slope;
vol[i] = iVolume( libCSS.symbolNames[i], volTf, shift + 1);
}
ArrayResize( css, libCSS.CURRENCYCOUNT );
for ( i = 0; i < libCSS.CURRENCYCOUNT; i++ )
{
// average
if ( libCSS.currencyOccurrences[i] > 0 ) libCSS.currencyValues[i] /= libCSS.currencyOccurrences[i]; else libCSS.currencyValues[i] = 0;
}
}
for ( i = 0; i < libCSS.CURRENCYCOUNT; i++ )
{
css[i] = libCSS.currencyValues[i];
}
volume = iVolume( libCSS.cacheSymbol, libCSS.cacheTimeframe, 0 );
}