1. Home
  2. Docs
  3. Knowledge Base
  4. TALib Indicators
  5. Indicator Implementation

Indicator Implementation

This documentation provides a step-by-step guide on how to integrate and utilize indicators from TA-Lib in MachinaTrader strategy code.


1. Strategy Setup

Start by importing the necessary libraries and setting up your strategy’s basic configuration:

import sys, talib, mtCommon
STRAT_NAME = 'RSI MACD STOCH SMA (S)'
VERSION = '1.0'
STRAT_TYPE = mtCommon.SimpleStrategy
NUM_CANDLES = 200
    

2. Parameters

Define the parameters for your strategy:

def onSendParams():
    _mt.addNumericParameter('Per Trade %', .95)
    ... (and other parameters)
    

3. Market Methods

Define the methods that will be executed per market based on your MachinaTrader configuration:

def onInit():
    _mt.logInfoP('onInit called [' + STRAT_NAME + ', v' + VERSION + ']')

def onTick(currentDate, candles, config):
    calcs = Calcs(candles)
    ... (your trading logic)
    

4. Indicators

For the integration of TA-Lib indicators, make use of the onSendIndicatorModels method. This method defines the visual representation of indicators in MachinaTrader’s interface:

def onSendIndicatorModels(candles):
    calcs = Calcs(candles)
    ... (your indicator models)
    

5. Calculations Class

This is a reusable module that can be utilized by both onTick and onSendIndicatorModels to ensure calculations are consistent:

class Calcs:
    def __init__(self, candles):
        self.onCalculate(candles, _mt)
    ... (your calculation methods)
    

6. TA-Lib Indicators

Integrate various TA-Lib indicators within your calculation class:

    self.rsis = talib.func.RSI(candles.C, _mt.getParameter('RSI Period'))
    self.upper,self.middle,self.lower = talib.func.BBANDS(candles.C, matype=talib.MA_Type.SMA)
    ... (and other indicators)
    

How can we help?