Thanks Andrew, that worked!


Solution:


Quote

string myCurrency(int idx)
{
if(idx == 0) return ("AUD");
if(idx == 1) return ("CAD");
if(idx == 2) return ("CHF");
if(idx == 3) return ("EUR");
if(idx == 4) return ("GBP");
if(idx == 5) return ("JPY");
if(idx == 6) return ("NZD");
if(idx == 7) return ("USD");
}

string findPair(string PrimCurrency, int bullbear)
{
var foundStrength;
var maxStrength;
var minStrength;
string Strongest;
string Weakest;
int initVal = 0; //don't break the first loop!
int i;

printf("\n\n.........");

for(i=0; i<8; i++)
{
if(strcmp(myCurrency(i),PrimCurrency) == 0) continue;

foundStrength = ccyStrength(myCurrency(i));

if(foundStrength > maxStrength || initVal == 0)
{
maxStrength = foundStrength;
Strongest = myCurrency(i);
}
if(foundStrength < minStrength || initVal == 0)
{
minStrength = foundStrength;
Weakest = myCurrency(i);
initVal = 1;
}
}
printf("\nStrongest: %s: %.5f; Weakest: %s, %.5f", Strongest, maxStrength, Weakest, minStrength);

string SekondaryCurrency = ifelse(bullbear == 0, Strongest, Weakest);
string myAsset;

for(listed_assets)
{
if(assetType(Asset) != FOREX) break_assets;

myAsset = strf("%s/%s", PrimCurrency, SekondaryCurrency);
printf("\nmyAsset = %s, Asset = %s", myAsset, Asset);
if(strcmp(myAsset, Asset) == 0){
printf(" <- chosen");
break_assets;

}
myAsset = strf("%s/%s", SekondaryCurrency, PrimCurrency);
printf("\nmyAsset = %s, Asset = %s", myAsset, Asset);
if(strcmp(myAsset, Asset) == 0){

printf(" <- chosen");
break_assets;
}
}
return(myAsset);
}




function run()
{

StartDate = 20120101;
EndDate = 20210101;
BarPeriod = 15;
LookBack = 200*1440/BarPeriod; //200 Bars in D1
set(STEPWISE);


ccyReset();
string Name;

for(listed_assets)
{
Name = Asset;
if(assetType(Name) != FOREX) continue;
asset(Name);
vars Prices = series(priceClose());

var Strength = ROC(Prices,1);
ccySet(Strength);
}

static char OldBest[8], OldWorst[8];
string Best = ccyMax(), Worst = ccyMin();

string myAsset = "USD";

if(!is(LOOKBACK))
{
printf("\nAUD %.4f, CAD %.4f, CHF %.4f, EUR %.4f GBP %.4f, JPY %.4f, NZD %.4f, USD %.4f", ccyStrength("AUD"),ccyStrength("CAD"),ccyStrength("CHF"),ccyStrength("EUR"),ccyStrength("GBP"),ccyStrength("JPY"),ccyStrength("NZD"),ccyStrength("USD"));

printf("\nChosen pair for USD bullish: %s", findPair(myAsset, 1));
//printf("\nChosen pair for USD bearish: %s", findPair(myAsset, 0));
}
}