Changeset 32838

Show
Ignore:
Timestamp:
04/26/09 23:37:58 (4 years ago)
Author:
rezoo
Message:

add Score_Sigmoid

Location:
lang/python/tremolo/tremolo/indications
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • lang/python/tremolo/tremolo/indications/__init__.py

    r32768 r32838  
    2424 
    2525# classes to use future prices. 
    26 from future import RelativePosition, DfSMA 
     26from future import RelativePosition, DfSMA, Score, Score_Sigmoid 
  • lang/python/tremolo/tremolo/indications/future.py

    r32831 r32838  
    66from scipy.ndimage.measurements import mean 
    77from scipy.stats.distributions import norm 
    8 from pylab import arange, sum 
     8from pylab import arange, sum, exp 
    99 
    1010class RelativePosition (Indication): 
     
    8383class Score (Indication): 
    8484        """ 
     85        t時点においての投資行動が適切であったのかどうかを判断する指標です. 
     86         
    8587        この指標クラスは未来の値を参照しているため、テスト用途にのみ用いられます. 
    8688        """ 
     
    136138                return "(!!)Score(%i,%i,%i)" % (self.length, self.stdev) 
    137139         
    138         def evaluate(self, t): 
     140        def evaluate(self, t): return self._score(t) 
     141         
     142        def _score(self, t): 
    139143                tplus = t + self.__length 
    140144                now   = self.asset.getScalar(t) 
    141145                dat = [self.asset.getScalar(i) - now 
    142146                       for i in xrange(tplus-self.__samples, tplus+self.__samples)] 
    143                 score = sum(self.__weight * dat) 
    144                 return score 
     147                return sum(self.__weight * dat) 
     148 
     149class Score_Sigmoid (Score): 
     150        """ 
     151        スコア関数をシグモイド関数に入れて、より特徴点を顕著にした関数です. 
     152         
     153        この指標クラスは未来の値を参照しているため、テスト用途にのみ用いられます. 
     154        """ 
     155        def __init__(self, asset, parent=None, length=30, 
     156                     stdev=10, level=3, gain=1.0): 
     157                Score.__init__(self, asset, parent, length, stdev, level): 
     158                self.__gain = gain 
     159         
     160        def getGain(self): return self.__gain 
     161        def setGain(self, g): self.__gain = g 
     162        gain = property(getGain, setGain) 
     163         
     164        def getDescription(self): 
     165                return "(!!)Score_Sigmoid(%i,%i,%i)" % (self.length, self.stdev) 
     166         
     167        def evaluate(self, t): 
     168                x = self._score(t) 
     169                return 1.0 / (1.0 + exp(-self.__gain*x))