Convert Pine Script Indicator

MQL4 Göstergeler Dönüştürme

İş tamamlandı

Tamamlanma süresi: 45 dakika
Müşteri tarafından geri bildirim
Developer was responsive and compliant to my requests
Geliştirici tarafından geri bildirim
Thank you

İş Gereklilikleri

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///////////

Yanıtlandı

1
Geliştirici 1
Derecelendirme
(93)
Projeler
119
50%
Arabuluculuk
4
50% / 50%
Süresi dolmuş
3
3%
Serbest
2
Geliştirici 2
Derecelendirme
(174)
Projeler
199
12%
Arabuluculuk
38
37% / 34%
Süresi dolmuş
5
3%
Çalışıyor
Yayınlandı: 2 kod
3
Geliştirici 3
Derecelendirme
(265)
Projeler
595
35%
Arabuluculuk
64
20% / 58%
Süresi dolmuş
147
25%
Serbest
Yayınlandı: 1 makale, 22 kod
4
Geliştirici 4
Derecelendirme
(4)
Projeler
4
0%
Arabuluculuk
2
0% / 100%
Süresi dolmuş
1
25%
Serbest
5
Geliştirici 5
Derecelendirme
(38)
Projeler
50
10%
Arabuluculuk
1
0% / 0%
Süresi dolmuş
8
16%
Serbest
6
Geliştirici 6
Derecelendirme
(132)
Projeler
178
39%
Arabuluculuk
4
25% / 50%
Süresi dolmuş
14
8%
Serbest
7
Geliştirici 7
Derecelendirme
(322)
Projeler
499
67%
Arabuluculuk
5
40% / 0%
Süresi dolmuş
4
1%
Serbest
Yayınlandı: 8 kod
8
Geliştirici 8
Derecelendirme
(294)
Projeler
469
39%
Arabuluculuk
102
40% / 24%
Süresi dolmuş
77
16%
Yüklendi
Yayınlandı: 2 kod
9
Geliştirici 9
Derecelendirme
(574)
Projeler
945
47%
Arabuluculuk
309
58% / 27%
Süresi dolmuş
125
13%
Serbest
Benzer siparişler
can you help me with I need an ATM strategy for NT8, here's the criteria: Forex trade entry 100,000 units with a starting SL of 70 pips. The following proft targets: 33 pips, 68, 125, 180. All targets exit 25,000 units each. As each target is hit, move SL to BE+5, then BE+35, then BE+70. So the SL's are fixed, not trailing. I can't figure this out on my platform
"I need a high-quality, non-repainting TradingView indicator for Gold (XAUUSD) on the 1-minute timeframe. The goal is to catch 'Tops and Bottoms' using a combination of price exhaustion and candlestick confirmation. Key Requirements: The Signal: Must identify reversals at extremes. Please use a combination of Bollinger Bands (Standard Deviation) and RSI . Candlestick Confirmation: Signals should only fire if there is
Hi guys looking for a reversal indicator that places signals on chart Signals must he placed at candle close and not repaint. Since I'm offering a high budget I want everything to run smoothly in these steps 1. Send screenahots of it 2. I'll give you feedback what to change or we'll skip to stage 3 3. Short period demo 4. Deposite send full version and close deal. That will allow safety for both us I know I'm getting
Need to create a New EA that focuses only on closing trades of an Existing EA . The New EA should be attached to the Existing EA and also it should not interfere the functions of Existing EA. The developer of the New EA should provide guidelines in order to attach the New EA to the Existing EA. The existing EA will not be shared to the developer. The conditions of new EA is as follows: The new EA should close all
I’m looking for an experienced MQL4 / MQL5 developer to help with an indicator project. Project overview: I have an existing MT4 arrow indicator that I’ve used for several years. The indicator is compiled only (.ex4) — source code is not available. It does not repaint . The indicator has stopped displaying properly (likely outdated). What I need: Rebuild the indicator from scratch by analyzing its behavior and
HI Iam trading with XU ma simple BT 1.12 INDICATOR Which I got indicator from forexstation forum but mq4 file is not with me,I want to have similar indicator which is non repainting in both mq4 and mq5 formats,it should be similar and signals should match it has 2 moving averages MA1 IS LONG TERM MA,MA2 is short term MA MA 2 SIGNALS FOLLOW THE MA TREND CHANGE not crossing of MA1
I am looking for an experienced developer to build a TradingView Pine Script that generates trading signals and sends them via webhook to MT4 for automated execution. The trading logic must be handled entirely in TradingView (Pine Script) . MT4 will only be responsible for receiving webhook messages and executing trades (no strategy logic inside MT4). The goal is to ensure that TradingView backtest results and live
Hello I would like to modify the exit method of the trade for current expert advisor which include martingale trading. basically adjusting the position size and closing the trade. additional details will be provided in the next step
cần người tạo EA y thay đổi hình ảnh gửi đầy đủ tính năng như hình giá cả có thể tăng thêm khối lượng mong muốn viết giống hình không khác ROBOT HƠI NHIỀU TÍNH NĂNG MỌI NGƯỜI CÓ THỂ ĐƯA GIÁ THAM KHẢO
Project Overview I am looking for an experienced MT5 (MQL5) developer to modify an existing Account Protection EA and, if required, extend it with custom logic. This is NOT a strategy or trading EA . The EA is purely for risk management, drawdown protection, alerts, and trading lock , suitable for prop-firm and managed accounts . Core Requirements 1. Alerts & Monitoring Alert on trade entry and trade exit Alert when

Proje bilgisi

Bütçe
30 - 100 USD
Son teslim tarihi
to 2 gün