Convert Pine Script Indicator

MQL4 Indicateurs Convertir

Tâche terminée

Temps d'exécution 45 minutes
Commentaires du client
Developer was responsive and compliant to my requests
Commentaires de l'employé
Thank you

Spécifications

I need to convert a pine script indicator to MQL4. The name of the pine script indicator is BBWP (Bollinger Band Width Percentage)

The pine script is between the comments below

/////Start of Pine Script////////////

//
// @version=5
//
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// @author  = The_Caretaker
// © The_Caretaker
//
// Much respect to John A Bollinger the creator of Bollinger Bands® and Bollinger Band Width indicators.
//
// Feel free to reuse or develop this script further, please drop me a note below if you find it useful.
//

indicator ( 'Bollinger Band Width Percentile', 'BBWP', overlay = false, format = format.percent, precision = 2, max_bars_back = 1000 )

///////////////////////////////////////////////////////////////////////////////
// Variable declarations

var string s_HMMML = 'High - Mid Hi - Mid - Mid Low - Low'
var string s_HML   = 'High - Mid - Low'
var string s_HL    = 'High - Low'

///////////////////////////////////////////////////////////////////////////////
// inputs

i_priceSrc      = input.source  ( close,        'Price Source',                                                                                               group = 'BBWP Properties')
i_basisType     = input.string  ( 'SMA',        'Basis Type',                       options=[ 'SMA', 'EMA', 'WMA', 'RMA', 'HMA', 'VWMA' ],                    group = 'BBWP Properties')
i_bbwpLen       = input.int     ( 13,           'Length',                           minval=1,                                                                 group = 'BBWP Properties')
i_bbwpLkbk      = input.int     ( 252,          'Lookback',                         minval=1,                                                                 group = 'BBWP Properties')

i_c_typ_line    = input.string  ( 'Spectrum',   'Color Type',                       options=[ 'Spectrum', 'Solid' ],                          inline = '1',   group = 'Line Plot Settings')
i_c_so_line     = input.color   ( #FFFF00,    'Solid Color',                                                                                inline = '1',   group = 'Line Plot Settings')
i_c_typ_sp_line = input.string  ( s_HMMML,      'Spectrum',                         options=[ s_HL, s_HML, s_HMMML ],                         inline = '2',   group = 'Line Plot Settings')
i_c_sp_hi_line  = input.color   ( #FF0000,    'High',                                                                                       inline = '3',   group = 'Line Plot Settings')
i_c_sp_mhi_line = input.color   ( #ffff00,    'Mid Hi',                                                                                     inline = '3',   group = 'Line Plot Settings')
i_c_sp_mid_line = input.color   ( #00FF00,    'Mid',                                                                                        inline = '3',   group = 'Line Plot Settings')
i_c_sp_mlo_line = input.color   ( #00ffff,    'Mid Lo',                                                                                     inline = '3',   group = 'Line Plot Settings')
i_c_sp_lo_line  = input.color   ( #0000FF,    'Low',                                                                                        inline = '3',   group = 'Line Plot Settings')
i_p_width_line  = input.int     ( 2,            'Line Width',                       minval=1, maxval=4,                                       inline = '4',   group = 'Line Plot Settings')

i_ma1On         = input.bool    ( true,         '',                                                                                           inline = '1',   group = 'Moving Average Settings')
i_ma1Type       = input.string  ( 'SMA',        'MA 1 Type',                        options=[ 'SMA', 'EMA', 'WMA', 'RMA', 'HMA' ],            inline = '1',   group = 'Moving Average Settings')
i_c_ma1         = input.color   ( #FFFFFF,    '',                                                                                           inline = '1',   group = 'Moving Average Settings')
i_ma1Len        = input.int     ( 5,            'Length',                           minval=1,                                                 inline = '1',   group = 'Moving Average Settings')
i_ma2On         = input.bool    ( false,        '',                                                                                           inline = '2',   group = 'Moving Average Settings')
i_ma2Type       = input.string  ( 'SMA',        'MA 2 Type',                        options=[ 'SMA', 'EMA', 'WMA', 'RMA', 'HMA' ],            inline = '2',   group = 'Moving Average Settings')
i_c_ma2         = input.color   ( #00FFFF,    '',                                                                                           inline = '2',   group = 'Moving Average Settings')
i_ma2Len        = input.int     ( 8,            'Length',                           minval=1,                                                 inline = '2',   group = 'Moving Average Settings')

i_alrtsOn       = input.bool    ( true,         'Alerts On',                                                                                                  group = 'Visual Alerts')
i_upperLevel    = input.int     ( 98,           'Extreme High',                     minval=1, inline='1',                                                     group = 'Visual Alerts')
i_lowerLevel    = input.int     ( 2,            'Extreme Low',                      minval=1, inline='1',                                                     group = 'Visual Alerts')

///////////////////////////////////////////////////////////////////////////////
// function declarations

f_maType ( _price, _len, _type ) =>
    switch _type
        "SMA" => ta.sma ( _price, _len )
        "EMA" => ta.ema ( _price, _len )
        "WMA" => ta.wma ( _price, _len )
        "RMA" => ta.rma ( _price, _len )
        "HMA" => ta.hma ( _price, _len )
        => ta.vwma ( _price, _len )

     // Returns moving average determined by _type      

f_bbwp ( _price, _bbwLen, _bbwpLen, _type ) =>
    float _basis = f_maType ( _price, _bbwLen, _type )
    float _dev = ta.stdev ( _price, _bbwLen )
    _bbw = ( _basis + _dev - ( _basis - _dev )) / _basis
    _bbwSum = 0.0
    _len = bar_index < _bbwpLen ? bar_index : _bbwpLen
    for _i = 1 to _len by 1
        _bbwSum += ( _bbw[_i] > _bbw ? 0 : 1 )
        _bbwSum
    _return = bar_index >= _bbwLen ? ( _bbwSum / _len) * 100 : na
    _return

     // Returns Bollinger Band Width Percentile

f_5Col ( _val, _lowV, _lmV, _midV, _hmV, _hiV, _lowC, _lmC, _midC, _mhC, _hiC ) =>
    _val <= _lmV ? color.from_gradient ( _val, _lowV, _lmV, _lowC, _lmC ) : _val <= _midV ? color.from_gradient ( _val, _lmV, _midV, _lmC, _midC ) : _val <= _hmV ? color.from_gradient ( _val, _midV, _hmV, _midC, _mhC ) : color.from_gradient ( _val, _hmV, _hiV, _mhC, _hiC )

     // Returns a quatruple spectrum color determined by _val from high to mid high to mid to mid low to low

f_3Col ( _val, _lowV, _midV, _hiV, _lowC, _midC, _hiC ) =>
    _val <= _midV ? color.from_gradient ( _val, _lowV, _midV, _lowC, _midC) : color.from_gradient ( _val, _midV, _hiV, _midC, _hiC)

     // Returns a double spectrum color determined by _val from high to mid to low

f_clrSlct ( _val, _type, _solid, _grad, _lowV, _lmV, _midV, _hmV, _hiV, _lowC, _lmC, _midC, _mhC, _hiC ) =>
    _type == 'Solid' ? _solid : _grad == s_HL ? color.from_gradient ( _val, _lowV, _hiV, _lowC, _hiC) : _grad == s_HML ? f_3Col ( _val, _lowV, _midV, _hiV, _lowC, _midC, _hiC ) : f_5Col ( _val, _lowV, _lmV, _midV, _hmV, _hiV, _lowC, _lmC, _midC, _mhC, _hiC )

     // Returns a color determined by _val from user settings of solid, or spectrum from high to low, or double spectrum from high to mid to low, or quatruple spectrum from high to mid high to mid to mid low to low

///////////////////////////////////////////////////////////////////////////////
// calculations

bbwp        = f_bbwp ( i_priceSrc, i_bbwpLen, i_bbwpLkbk, i_basisType )
c_bbwp      = f_clrSlct ( bbwp, i_c_typ_line, i_c_so_line, i_c_typ_sp_line, 0, 25, 50, 75, 100, i_c_sp_lo_line, i_c_sp_mlo_line, i_c_sp_mid_line, i_c_sp_mhi_line, i_c_sp_hi_line )
bbwpMA1     = i_ma1On ? f_maType ( bbwp, i_ma1Len, i_ma1Type ) : na
bbwpMA2     = i_ma2On ? f_maType ( bbwp, i_ma2Len, i_ma2Type ) : na
hiAlrtBar   = i_alrtsOn and bbwp >= i_upperLevel ? bbwp : na
loAlrtBar   = i_alrtsOn and bbwp <= i_lowerLevel ? bbwp : na

///////////////////////////////////////////////////////////////////////////////
// plots

p_scaleHi   = hline ( 100,  'Scale High',#ff0000, hline.style_solid )
p_midLine   = hline ( 50,   'Mid-Line',  #a6a6a6, hline.style_dashed )
p_scaleLo   = hline ( 0,    'Scale Low', #0000ff, hline.style_solid )

p_bbwp      = plot ( bbwp,      'BBWP',         c_bbwp, i_p_width_line, plot.style_line, editable=false )
p_hiAlrt    = plot ( hiAlrtBar, 'Extreme Hi',   c_bbwp, 1, plot.style_columns, histbase=0, editable=false )
p_loAlrt    = plot ( loAlrtBar, 'Extreme Lo',   c_bbwp, 1, plot.style_columns, histbase=100, editable=false )
p_ma1       = plot ( bbwpMA1,   'MA 1',         i_c_ma1, 1, plot.style_line, 0 )
p_ma2       = plot ( bbwpMA2,   'MA 2',         i_c_ma2, 1, plot.style_line, 0 )

/////////////////////////////
// end


//////End of Pine Script///////////

Répondu

1
Développeur 1
Évaluation
(93)
Projets
119
50%
Arbitrage
4
50% / 50%
En retard
3
3%
Gratuit
2
Développeur 2
Évaluation
(173)
Projets
197
12%
Arbitrage
38
37% / 34%
En retard
5
3%
Chargé
Publié : 2 codes
3
Développeur 3
Évaluation
(255)
Projets
577
36%
Arbitrage
64
20% / 58%
En retard
147
25%
Gratuit
Publié : 1 article, 22 codes
4
Développeur 4
Évaluation
(4)
Projets
4
0%
Arbitrage
2
0% / 100%
En retard
1
25%
Gratuit
5
Développeur 5
Évaluation
(38)
Projets
50
10%
Arbitrage
1
0% / 0%
En retard
8
16%
Gratuit
6
Développeur 6
Évaluation
(132)
Projets
178
39%
Arbitrage
4
25% / 50%
En retard
14
8%
Gratuit
7
Développeur 7
Évaluation
(320)
Projets
493
67%
Arbitrage
5
40% / 0%
En retard
4
1%
Travail
Publié : 8 codes
8
Développeur 8
Évaluation
(284)
Projets
458
39%
Arbitrage
94
44% / 18%
En retard
72
16%
Chargé
Publié : 2 codes
9
Développeur 9
Évaluation
(571)
Projets
941
47%
Arbitrage
303
59% / 25%
En retard
124
13%
Travail
Commandes similaires
Hallo, ich suche einen erfahrenen MT5-Programmierer, der mir einen Key Structure Range Indikator auf Basis von 3er-Fractals erstellt, inkl. Buffers für spätere EA-Nutzung. Pflichtenheft - Key Structure Range Indikator für MT5 (EA-ready): Projektbezeichnung: "Key Structure Range Indikator für MT5 (EA-ready)" 1. Plattform - MetaTrader 5 (MT5) - Unterstützte Timeframes: M1 bis H12 2. Kerneigenschaften (unbedingt
Hello everyone. I want to reproduce the indicator attached as picture but for Metatrader5. They are differents things to implement: 1- The BUY / SELL logic with their level of stop loss and take profit 2- A system on chart that show the levels, similar from what i have on the picture. I know that we can't have exactly this from metatrader so suggest me things. 3- Ovveride bar colors when we are on a signal. For BUYS
Mt5 indicator 50+ USD
hello great developer Hi, I need another indicator for MT5 from you, please. The indicator is as follows: As soon as three wicks of a candle reach the same price but then retreat, leaving a wick behind, a yellow line should appear between the wicks. There must be at least three wicks. There can be more than one, but no fewer than three. And please set an alert as soon as a yellow line appears. I've attached a PDF
I have an account on (MT4 AxiTrader) I need some support from you I need to add a bank account on the Client Portal. Once its verify my bank account, I can submit a withdrawal. If you can do that for me then send me an offer please If you can can help how to add a bank account on the (Client Portal) please I will be very appreciate
אני זקוק למומחה שיצור יועץ מומחה למגמת העל בדיוק כפי שהוא בתצוגת מסחר וזה גם יופיע בגרף בדיוק כפי שהוא בתצוגת המסחר, כולל האותות וקווי המגמה שיעבדו מעסקה לעסקה, אך יש להם גם אפשרות להפעיל ולכבות סטופ לוס, קח רווח, סטופ נגרר, גודל יח' ואותן הגדרות המופיעות במחוון בתצוגת מסחר. תודה רבה :))
I need a professional programmer in MT5 and must be experienced in building structured to do the task. My MT5 ea has been done but a few bugs need to be fixed and i have the source code. I want the job do be done in 2 to 3 days or don't waste our time. What to do 1. EA open trades must follow the sequence even when manual trade/Hedging trade is open 2. If there are no normal buys or sells, hedging buy or sell alone
HELLO GREAT DEVELOPER Hi, I'm looking for an experienced NinjaTrader 8 developer to complete an automated trading strategy. All custom indicators (4) are done, and I have a full spec document. I just need the strategy logic finalized—entry/exit rules, integration, position management, and testing. There’s a partial strategy file ready. Please let me know your availability, experience with multi-timeframe logic, and
to compile all the suitable markets for buy and place a buy for the shortest timeframe and place a sell for also a shortest timeframe it should work with all brokers and can automatically place a trade as long as its connected to the internet it should inform where the contracts are placed and for how long
I need an experienced Pine Script v5 developer to help finalize and package a custom strategy that has already been partially converted from TradeStation EasyLanguage. The core logic uses four key technical indicators: MACD crossover Chaikin Oscillator (volume-based) Directional Movement Index (DMI +/- crossover) Simple Moving Averages (SMA) Project Scope: 1. Fix and clean the current Pine Script code 2. Implement
Hello, I'm currently seeking a skilled and reliable MQL4 developer to assist in modifying and enhancing my Expert Advisor, Reversal Master V10.1 , to its next version V12.1 FF . This update involves integrating several advanced third-party indicators and implementing new trading logic based on clearly defined conditions to improve performance and strategy precision. If you have experience in EA development and enjoy

Informations sur le projet

Budget
30 - 100 USD
Pour le développeur
27 - 90 USD
Délais
à 2 jour(s)