Skip to content
Open RaamTrade

RC2_LEARNING_SET_NAME

A learning set is named learning_set_1 to learning_set_5; <name> is not one of those names.

What it means

Learning sets are numbered: the run form shows them as «Learning set 1» to «Learning set 5», in the order of their numbers (a set’s title= rides beside its number, never instead of it). The line’s name is that number, so it must be learning_set_ followed by 1 to 5, each used once, without gaps. learning_set_1 may be left out — set 1 is then the strategy’s own Param ranges, and the written sets start at 2.

Why it happens

A name of your own:

class NamedSet(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)
trend_lesson = LearningSet(fast=Range(5, 15))
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)

A gap — set 3 with no set 2:

class GapSet(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_3 = LearningSet(fast=Range(5, 15))
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

Use the number. Without learning_set_1, the first set you write is learning_set_2.

class NumberedSet(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=Range(5, 15))
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_SHAPE — the name is right but the value is not LearningSet(...).