Gamestudio Links
Zorro Links
Newest Posts
Data from CSV not parsed correctly
by EternallyCurious. 04/18/24 10:45
StartWeek not working as it should
by Zheka. 04/18/24 10:11
folder management functions
by VoroneTZ. 04/17/24 06:52
lookback setting performance issue
by 7th_zorro. 04/16/24 03:08
zorro 64bit command line support
by 7th_zorro. 04/15/24 09:36
Zorro FIX plugin - Experimental
by flink. 04/14/24 07:48
Zorro FIX plugin - Experimental
by flink. 04/14/24 07:46
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
4 registered members (ozgur, EternallyCurious, howardR, 1 invisible), 623 guests, and 0 spiders.
Key: Admin, Global Mod, Mod
Newest Members
EternallyCurious, 11honza11, ccorrea, sakolin, rajesh7827
19046 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Optimize non asset/algo specific #478577
11/11/19 08:07
11/11/19 08:07
Joined: Jul 2019
Posts: 49
Köln
S
StefanCGN Offline OP
Newbie
StefanCGN  Offline OP
Newbie
S

Joined: Jul 2019
Posts: 49
Köln
Hi, I am trying to use optimize for parameters independently from assets / algos. The manual says that I have to enumerate assets in a for loop and call optimize outside loop. All my tries do not work... Individual optimization is done. WHY?

function run()

{



set(PARAMETERS+FACTORS);

AssetList = "AssetsOandaEUR100extended.csv";

BarPeriod = 60; // 1 hour bars

LookBack = 1800;

NumYears = 10;

NumWFOCycles = 10;

Hedge = 2;

Weekend = 2;

StartWeek = 10400; // start Monday 4 am

EndWeek = 51900; // end Friday 7 pm

if(Train) {

Detrend = PRICES;

NumSampleCycles = 4; }



int i;

for(i=0; Assets[i]; i++)

{ asset(Assets[i]); }

asset("EUR/USD");

algo("MOMENT_FX");



var Threshold = optimize(1,0.25,3,0.25);

int r = optimize(20,1,20,2);

Last edited by StefanCGN; 11/11/19 11:04.
Re: Optimize non asset/algo specific [Re: StefanCGN] #478581
11/11/19 11:51
11/11/19 11:51
Joined: Jul 2000
Posts: 27,978
Frankfurt
jcl Offline

Chief Engineer
jcl  Offline

Chief Engineer

Joined: Jul 2000
Posts: 27,978
Frankfurt
That's no individual optimization. In fact it's no optimization at all.

For getting help with coding, please post the same script that you had a problem with, and please use code formatting so that it is readable.

Re: Optimize non asset/algo specific [Re: StefanCGN] #478582
11/11/19 12:11
11/11/19 12:11
Joined: Jul 2019
Posts: 49
Köln
S
StefanCGN Offline OP
Newbie
StefanCGN  Offline OP
Newbie
S

Joined: Jul 2019
Posts: 49
Köln
In fact it is an adaption of your currency strength skript. If I start to train this, it is still going through all assets to optimize:

Code
 
int TrailingStop(var range )

{

  if(TradeIsLong and TradeIsOpen and TradeProfit > 0)

    TradeStopLimit = max(TradeStopLimit,LL(range));

  else if(TradeIsShort and TradeIsOpen and TradeProfit > 0)      

           TradeStopLimit = min(TradeStopLimit,HH(range));

return 0;

}

 

function run()

{

 

          set(PARAMETERS+FACTORS); 

          AssetList = "AssetsOandaEUR100extended.csv";

          BarPeriod = 60;        // 1 hour bars

          LookBack = 1800;    

          NumYears = 10;

          NumWFOCycles = 10;

          Hedge = 2;

          Weekend = 2;

          StartWeek = 10400; // start Monday 4 am

          EndWeek = 51900; // end Friday 7 pm

          if(Train) {

          Detrend = PRICES;

          NumSampleCycles = 4; }

         

 

          Capital = slider(1,4000,0,7000,"Capital","initial captial");

         

          Margin = 0.5 * OptimalF * Capital;

         

         

          int i=0;

 

          for(i=0; Assets[i]; i++)

          {asset(Assets[i]);

          i++;}

         

          var Threshold = optimize(1,0.25,3,0.25);

          int r = optimize(20,1,20,2);

         

 

  

          ccyReset();

  string Name;

  while(Name = (loop(Assets)))

  {

    if(assetType(Name) != FOREX)

      continue; // Currency pairs only

    asset(Name);

    vars Prices = series(priceClose());

    ccySet(ROC(Prices,1)); // store price change as strength

  }

 

  

  

// get currency pairs with highest and lowest strength difference

          string Best = ccyMax(), Worst = ccyMin();

   asset(Best);

   vars Prices_b = series(priceClose());

          vars roc_b = series(ROC(Prices_b,1));

          vars zscore_b = series(zscore(roc_b[0],1800));

          asset(Worst);

          vars Prices_w = series(priceClose());

          vars roc_w = series(ROC(Prices_w,1));

          vars zscore_w = series(zscore(roc_w[0],1800));

 

                   

          static char OldBest[8], OldWorst[8]; // static for keeping contents between runs

  if(*OldBest && !strstr(Best,OldBest)) { // new strongest asset?

    asset(OldBest);

    exitLong();

    if(zscore_b[0] > Threshold) {

      asset(Best);

                    Stop = 2*ATR(20);

      enterLong(TrailingStop,r);

    }

  }

  if(*OldWorst && !strstr(Worst,OldWorst)) { // new weakest asset?

    asset(OldWorst);

    exitShort();

    if(zscore_w[0] < -Threshold) {

      asset(Worst);

                    Stop = 2*ATR(20);

      enterShort(TrailingStop,r);

    }

  }

 

// store previous strongest and weakest asset names 

  strcpy(OldBest,Best);

  strcpy(OldWorst,Worst);


}


Last edited by StefanCGN; 11/11/19 14:15.
Re: Optimize non asset/algo specific [Re: StefanCGN] #478583
11/11/19 14:11
11/11/19 14:11
Joined: Feb 2017
Posts: 1,725
Chicago
AndrewAMD Offline
Serious User
AndrewAMD  Offline
Serious User

Joined: Feb 2017
Posts: 1,725
Chicago
First of all, you should write [/code] instead of [code/] at the end of your code block.

Second, if your intent was to optimize each individual asset, you are certainly not doing that. You must put your optimize() call inside of your asset loop(). To be explicitly clear, your while loop must be using the loop() call, and the optimize() call must be in that same exact while loop.

Re: Optimize non asset/algo specific [Re: AndrewAMD] #478584
11/11/19 14:15
11/11/19 14:15
Joined: Jul 2019
Posts: 49
Köln
S
StefanCGN Offline OP
Newbie
StefanCGN  Offline OP
Newbie
S

Joined: Jul 2019
Posts: 49
Köln
Thanks, but I want explicitly the opposite: Parameters should be in depended from algo/asset. That's why I placed the calls outside.... But the optimizer still goes through the components....

Re: Optimize non asset/algo specific [Re: StefanCGN] #478585
11/11/19 14:51
11/11/19 14:51
Joined: Feb 2017
Posts: 1,725
Chicago
AndrewAMD Offline
Serious User
AndrewAMD  Offline
Serious User

Joined: Feb 2017
Posts: 1,725
Chicago
Then don't use loop().

Instead of while(loop()), use for(listed_assets){asset(Asset); /* etc */}. But keep your optimize() calls outside of the for loop.

Re: Optimize non asset/algo specific [Re: AndrewAMD] #478586
11/11/19 15:32
11/11/19 15:32
Joined: Jul 2019
Posts: 49
Köln
S
StefanCGN Offline OP
Newbie
StefanCGN  Offline OP
Newbie
S

Joined: Jul 2019
Posts: 49
Köln
Thanks a lot. That helped!!! :-)


Moderated by  Petra 

Powered by UBB.threads™ PHP Forum Software 7.7.1