Skip to content
Open RaamTrade

RC2_LEARNING_SET_NO_SEARCH

<set> searches nothing: every parameter in it is fixed.

What it means

A learning set is an example of how to search, so it must search at least one parameter. A set where every parameter is fixed is a ready configuration, which a learning set must never be. Remember that a Param you leave out is searched over its own range — the error comes when every searchable Param is fixed.

Why it happens

class AllFixed(Strategy):
trade = Symbol()
sizing = FixedCapital()
fast = Param(10, min=2, max=100, opt_min=5, opt_max=30)
slow = Param(30, min=10, max=200, opt_min=20, opt_max=80, opt_step=5)
offset = Param(0.01, min=0.0, max=1.0)
use_filter = Param(False)
learning_set_2 = LearningSet(fast=10, slow=40)
def execute(self):
f = SMA(self.fast, on=self.trade)
s = SMA(self.slow, on=self.trade)
if f.value > s.value and self.trade.is_flat:
self.buy(self.trade)

How to fix it

Search at least one parameter with Range(...), or leave one out so it keeps its own range.

class SearchesOne(Strategy):
trade = Symbol()
sizing = FixedCapital()
fast = Param(10, min=2, max=100, opt_min=5, opt_max=30)
slow = Param(30, min=10, max=200, opt_min=20, opt_max=80, opt_step=5)
offset = Param(0.01, min=0.0, max=1.0)
use_filter = Param(False)
learning_set_2 = LearningSet(fast=10, slow=Range(40, 80))
def execute(self):
f = SMA(self.fast, on=self.trade)
s = SMA(self.slow, on=self.trade)
if f.value > s.value and self.trade.is_flat:
self.buy(self.trade)
  • Learning sets
  • RC2_LEARNING_SET_DUPLICATE — the set searches, but exactly like another set.