// Update Assets.dta and/or download price history of a certain asset (or all)
// Select the account (Demo/Real) before
//#define ADD_ASSET "BUND"//"Copper"
// uncomment for adding a new asset to Assets.dta
//#define ALL_ASSETS
// uncomment for updating all assets in the loop (otherwise, selected asset only)
//#define PRICE_HISTORY
// uncomment for downloading the price history (otherwise, update Assets.dta only)
#define MAX_GAP 2
// uncomment for checking the price history for 2-days gaps
#define ALL_MAJORS
#define START_DATE_MAJORS 2015//20020101
#define END_DATE_MAJORS 2016
/*
#define ALL_COMMODITIES
#define START_DATE_COMMODITIES 2014//20020101
#define END_DATE_COMMODITIES 2015
*/
/*
#define ALL_EXOTICS
#define START_DATE_EXOTICS 2014//2011
#define END_DATE_EXOTICS 2015
*/
/*
#define ALL_INDICES
#define START_DATE_INDICES 2014//2011
#define END_DATE_INDICES 2015
*/
/*
#define ALL_ENERGIES
#define START_DATE_ENERGIES 2014//2011
#define END_DATE_ENERGIES 2015
*/
/*
#define ALL_METALS
#define START_DATE_METALS 2014//2011
#define END_DATE_METALS 2015
*/
/*
#define ALL_TREASURIES
#define START_DATE_TREASURIES 2014
#define END_DATE_TREASURIES 2015
*/
function run()
{
if(!is(TRADEMODE)) {
quit("Click [Trade] to update assets!");
return;
}
LookBack = 0;
StartDate = 2014; // set date for downloading price history
EndDate = 2015;
#ifdef PRICE_HISTORY
#ifdef MAX_GAP
GapDays = MAX_GAP; // detect gaps
#endif
#else
NumYears = -1; // don't load prices, only update Assets.dta
#endif
string name;
#ifdef ADD_ASSET // add single asset
//static int i = 0;
name = ADD_ASSET;
asset(name);
loadHistory(name,1);
//msg("%d",i);
//i = i + 1;
#else
#ifdef ALL_MAJORS
#ifdef START_DATE_MAJORS
StartDate = START_DATE_MAJORS;
#endif
#ifdef END_DATE_MAJORS
EndDate = END_DATE_MAJORS;
#endif
while(name = loop("EUR/USD","USD/JPY","GBP/USD","USD/CHF"))
loadHistory(name,1);
#endif
#ifdef ALL_COMMODITIES
#ifdef START_DATE_COMMODITIES
StartDate = START_DATE_COMMODITIES;
#endif
#ifdef END_DATE_COMMODITIES
EndDate = END_DATE_COMMODITIES;
#endif
while(name = loop("AUD/USD","USD/CAD","NZD/USD"))
loadHistory(name,1);
#endif
#ifdef ALL_EXOTICS
#ifdef START_DATE_EXOTICS
StartDate = START_DATE_EXOTICS;
#endif
#ifdef END_DATE_EXOTICS
EndDate = END_DATE_EXOTICS;
#endif
while(name = loop(
"USD/CNH","AUD/CAD","AUD/CHF","AUD/JPY","AUD/NZD","CAD/CHF","CAD/JPY","CHF/JPY","CHF/NOK","CHF/SEK","EUR/AUD","EUR/CAD","EUR/CHF",
"EUR/CZK","EUR/DKK","EUR/GBP","EUR/HUF","EUR/JPY","EUR/NOK","EUR/NZD","EUR/PLN","EUR/SEK","EUR/TRY","GBP/AUD","GBP/CAD","GBP/CHF",
"GBP/JPY","GBP/NZD","GBP/SEK","GBP/USD","HKD/JPY","NOK/JPY","NZD/CAD","NZD/CHF","NZD/JPY","SEK/JPY","SGD/JPY","TRY/JPY","USD/CNH",
"USD/CZK","USD/DKK","USD/HKD","USD/HUF","USD/ILS","USD/MXN","USD/NOK","USD/PLN","USD/RUB","USD/SEK","USD/SGD","USD/TRY","USD/ZAR",
"ZAR/JPY"))
loadHistory(name,1);
#endif
#ifdef ALL_INDICES
#ifdef START_DATE_INDICES
StartDate = START_DATE_INDICES;
#endif
#ifdef END_DATE_INDICES
EndDate = END_DATE_INDICES;
#endif
while(name = loop("US30","SPX500","NAS100","UK100","GER30","ITA40","ESP35","FRA40","HKG33","JPN225","SUI30","AUS200","EUSTX50","USDOLLAR"))
loadHistory(name,1);
#endif
#ifdef ALL_ENERGIES
#ifdef START_DATE_ENERGIES
StartDate = START_DATE_ENERGIES;
#endif
#ifdef END_DATE_ENERGIES
EndDate = END_DATE_ENERGIES;
#endif
while(name = loop("USOil","UKOil","NGAS"))
loadHistory(name,1);
#endif
#ifdef ALL_METALS
#ifdef START_DATE_METALS
StartDate = START_DATE_METALS;
#endif
#ifdef END_DATE_METALS
EndDate = END_DATE_METALS;
#endif
while(name = loop("XAU/USD","XAG/USD","XPD/USD","XPT/USD","Copper"))
loadHistory(name,1);
#endif
#ifdef ALL_TREASURIES
#ifdef START_DATE_TREASURIES
StartDate = START_DATE_TREASURIES;
#endif
#ifdef END_DATE_TREASURIES
EndDate = END_DATE_TREASURIES;
#endif
while(name = loop("BUND"))
loadHistory(name,1);
#endif
#ifdef ALL_ASSETS // update all assets
while(name = loop(
//Currencies: (see http://www.fxcm.com/uk/markets/forex/currency-pairs/ and
// http://forums.babypips.com/newbie-island/5167-tip-non-correlated-portfolio.html#post17611)
//Majors:
"EUR/USD","USD/JPY","GBP/USD","USD/CHF"
,
//Commodity Pairs:
"AUD/USD","USD/CAD","NZD/USD"
,
//Exotic Pairs:
"AUD/CAD","AUD/CHF","AUD/JPY","AUD/NZD","CAD/CHF","CAD/JPY","CHF/JPY","CHF/NOK","CHF/SEK","EUR/AUD","EUR/CAD","EUR/CHF","EUR/CZK",
"EUR/DKK","EUR/GBP","EUR/HUF","EUR/JPY","EUR/NOK","EUR/NZD","EUR/PLN","EUR/SEK","EUR/TRY","GBP/AUD","GBP/CAD","GBP/CHF","GBP/JPY",
"GBP/NZD","GBP/SEK","HKD/JPY","NOK/JPY","NZD/CAD","NZD/CHF","NZD/JPY","SEK/JPY","SGD/JPY","TRY/JPY","USD/CNH","USD/CZK","USD/DKK",
"USD/HKD","USD/HUF","USD/ILS","USD/MXN","USD/NOK","USD/PLN","USD/RUB","USD/SEK","USD/SGD","USD/TRY","USD/ZAR","ZAR/JPY"
,
//Indices: (no history previous 2009 in many of them)
//(ver http://docs.fxcorporate.com/user-guide/ug-cfd-product-guide-ltd-es.pdf
//see http://docs.fxcorporate.com/user-guide/ug-cfd-product-guide-ltd-en.pdf)
//(
"US30","SPX500","NAS100","UK100","GER30","ITA40","ESP35","FRA40","HKG33","JPN225","SUI30","AUS200","EUSTX50","USDOLLAR"
,
//)
//Commodities (no history previous 2009 in many of them)
//(ver http://docs.fxcorporate.com/user-guide/ug-cfd-product-guide-ltd-es.pdf
//see http://docs.fxcorporate.com/user-guide/ug-cfd-product-guide-ltd-en.pdf)
//(
//Energy:
"USOil","UKOil","NGAS"
,
//Metals:
"XAU/USD","XAG/USD","XPD/USD","XPT/USD","Copper"
//,
//)
//Treasury
//(ver http://docs.fxcorporate.com/user-guide/ug-cfd-product-guide-ltd-es.pdf
//see http://docs.fxcorporate.com/user-guide/ug-cfd-product-guide-ltd-en.pdf)
//(
//"BUND"
)
)
loadHistory(name,1);
#endif
#endif
//if (i == 7)
quit("Done!");
}