Advertisement
Maurizio-Ciullo

39 Lezione Personale 2 How To Debug Pine Script

Apr 12th, 2023
1,192
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
  2. // © Maurizio-Ciullo
  3.  
  4. // https://www.youtube.com/watch?v=0hDTYCd-u3w&t=937s
  5. // https://it.tradingview.com/script/XQClwWbb-Logger/
  6.  
  7. //@version=5
  8. indicator("2 How To Debug Pine Script Code The Art Of Trading", overlay=true)
  9. //plot(close)
  10.  
  11. // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<    // Diplay //    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  12.  
  13.  
  14.                         // Possiamo avere differenti visulizzazioni nelle nostre finestre.
  15. // plot(... display=display.all) I valori si vedranno ovunque
  16. // plot(... display=display.status_line) I valori si vedranno solo nella barra di stato del grafico
  17. // plot(... display=display.all - display.status_line) I valori si vedranno ovunque tranne nella barra di stato del grafico
  18.  
  19. emaTicker0 = request.security(syminfo.tickerid, "1D", ta.ema(close, 50))
  20. // plot(emaTicker0, title="emaTicker0", color=color.green, display=display.all)
  21. // plot(emaTicker0, title="emaTicker0", color=color.green, display=display.status_line)
  22. plot(emaTicker0, title="emaTicker0", color=color.green, display=display.all - display.status_line)
  23.  
  24. // Cambio il ticker
  25. emaTicker1 = request.security("BYBIT:BTCUSDT.P", "1D", ta.ema(close, 50))
  26. // plot(emaTicker1, title="emaTicker1", color=color.red, display=display.all)
  27. // plot(emaTicker1, title="emaTicker1", color=color.red, display=display.status_line)
  28. plot(emaTicker1, title="emaTicker1", color=color.red, display=display.all - display.status_line)
  29.  
  30. // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<    // Plottare Indicatori Diversi Ticker/Timeframes Con Label//    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  31.  
  32. string debugString0 = ""
  33. debugString0 := debugString0 + "ema50= [" + str.tostring(emaTicker0) + "]" + " tiker = " + (syminfo.tickerid) + "\n"
  34.  
  35. string debugString1 = ""
  36. debugString1 := debugString1 + "ema50= [" + str.tostring(emaTicker1) + "]" + " tiker = " + ("BYBIT:BTCUSDT.P") + "\n"
  37.  
  38. if barstate.islast // label.new y= il punto dove vogliamo ancorare la label, in questo caso sulla media
  39.     label.new(bar_index, emaTicker0, debugString0, text="debugString", color=color.black, textcolor = color.white, textalign = text.align_left)
  40. if barstate.islast
  41.     label.new(bar_index, emaTicker1, debugString1, text="debugString", color=color.black, textcolor = color.white, textalign = text.align_left)
  42.  
  43. // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<    // Altro //    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  44.  
  45. // Si possono usare alert con un messaggio all'interno per essere notificati da un messaggio o un'email.
  46. // Si possono esportare i deti della candele e degli indicatori ma solo con la versione premium.
  47.  
  48.  
  49. // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<    // Inizio Library Logger //    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  50.  
  51. // Il seguente è una libreria che permette il debug in modo facile e visibile, link sotto.
  52. // Si può usare per qualsiasi cosa: Plot elemento/Cicli/Array/Method/Custom Funcition/If Statement Etc... .
  53. // https://it.tradingview.com/script/XQClwWbb-Logger/
  54.  
  55. // Inizio Import Library Logger //
  56.  
  57. // import HeWhoMustNotBeNamed/Logger/2 as log           // Importo la libreria aggiornata 2 as l
  58. // var logger = log.Logger.new(minimumLevel = 'DEBUG')  // Creo una variabile persistente e richiamo la  libreria creando un nuovo legger type
  59. // logger.init()                                        // Inizializzo con init
  60. // Aprire il link in alto per vedere il significato dei parametri di log.Logger.new //
  61.  
  62. // Fine Import Library Logger //
  63.  
  64.  
  65. // Inizio Test Logger 1 //
  66.  
  67. import HeWhoMustNotBeNamed/Logger/2 as log          
  68. // var logger1 = log.Logger.new() // In basso abbiamo la lista di quello che vogliamo fare
  69. //     pageSize: size of each page of logs which can be shown on UI. Default is 10
  70. //     maxEntries: max size logs to be stored
  71. //     pageNumber: current page number of logs to display on chart
  72. //     textSize: size of text on debug table to be shown. default is size.small. Other options - size.tiny, size.normal, size.large, size.huge, size.auto
  73. //     textColor: text color of debug messages. Default is color.white
  74. //     showOnlyLast: If set, shows the logs derived only from last bar. Default is true
  75. //     minimumLevel: Minimum level of logs to be considered for logging. Valid values in ascending order - `TRACE`, `DEBUG`, `INFO`, `WARN`,
  76.  
  77. //logger1.init()
  78.  
  79. // //In basso abbiamo la lista di quello che vogliamo fare
  80. // //Nel nostro caso andremo ad utilizzare info()
  81. // logger1.trace('TEST Trace Level')  // Sul grafico da sinistra a destra: Index/Bar Index/Date/Time/Trace Level/Message
  82. // logger1.debug('TEST DEBUG Level')
  83. // logger1.info('TEST INFO Level')
  84. // logger1.warn('TEST WARN Level')
  85. // logger1.error('TEST ERROR Level')
  86. // logger1.fatal('TEST FATAL Level')
  87.  
  88. //{
  89. // var logger1 = log.Logger.new(showOnlyLast = false, pageSize = 20, pageNumber = 10)
  90. // logger1.init()
  91.  
  92. // logger1.info('BarOpen' + str.tostring(open))
  93. //}
  94.  
  95. // Fine Test Logger 1 //
  96.  
  97.  
  98. // Inizio Test Logger 2 //
  99. // Esempio di debug error su condizioni più complesse come verificare la lunghezza di un array.
  100.  
  101. //{
  102. //  float[] priceArray = array.from(0.1, 2.5, 5.0) // Creazione di un array float lunghezza 3 elementi
  103. // if barstate.islast
  104. //     label.new(bar_index, 0, "Array Size Is: " + str.tostring(array.size(priceArray)))  // Mi ritorna la lunghezza "size" dell'array
  105.  
  106. // var logger2 = log.Logger.new(showOnlyLast = false)
  107. // logger2.init()
  108. // if array.size(priceArray) != 2
  109. //     logger2.error('!!! Array Size Is != ' + str.tostring(array.size(priceArray)))
  110. // else
  111. //     logger2.info('OK Array Size Is ' + str.tostring(array.size(priceArray)))
  112. //}
  113.  
  114. // Fine Test Logger 2 //
  115.  
  116.  
  117. // Inizio Test Logger 3 //
  118. //{
  119. float valore = 0.0
  120. for i = 0 to 11
  121.     valore := close[i]
  122.  
  123. var logger3 = log.Logger.new(showOnlyLast = false, pageSize = 10)
  124. logger3.init()
  125. logger3.info('valore ' + str.tostring(valore))
  126. plot(valore, color=color.blue, title="valore")
  127. //}
  128.  
  129. // Fine Test Logger 3 //
  130.  
  131. // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<    // Fine Library Logger //    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  132.  
  133.  
  134.  
  135.  
Advertisement
Comments
Add Comment
Please, Sign In to add comment
Advertisement