Ulcer Index System

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #105225 quote
    coscar
    Participant
    Senior

    Salve  a tutti

    chiedo l’intervento dei più esperti ( se possibile) per verificare e migliorare questo semplice sistema basato su Ulcer Index,

    il mio obiettivo era ridurre al minimo le variabili per non incorrere nella sovraottimizzazione.

    Il sistema ha  restituito risultati positivi su vari mercati e può essere utlizzato con la funzione cumulateorder  True/False ma solo su Timeframe giornaliero/settimanale.

    Qualche idea?

    Grazie

    Un saluto

    Coscar

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate Attivate / disattivate
    
    //+-----------------------Varibili-----------------------------------------+
    
    // N da 3 a 31 passo 1
    // Value da 0 a 1 passo 0.01
    // X da 0 a 10 passo 0.1 se utilizzato
    //+------------------------------------------------------------------------+
    
    MaxPrice=Highest[N](Close)
    PD = ((Close-MaxPrice)/MaxPrice)*100
    s=0
    for i=0 to N-1 do
    s=s+PD*PD
    next
    SquaredAverage=s/N
    UlcerIndex=sqrt(SquaredAverage)
    
    UlcerZero= UlcerIndex[1]- UlcerIndex
    
    c1 = (UlcerZero[1] <= -Value)
    c2 = (UlcerZero[1] >=  Value)
    
    IF c1 THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
    
    IF c2 THEN
    SELLSHORT 1 CONTRACT AT MARKET
    ENDIF
    
    //SET TARGET %PROFIT X
    
    Ulcer-System.png Ulcer-System.png
    #105242 quote
    robertogozzi
    Moderator
    Master

    Mi sembra non ci siano molte cose da ottimizzare, se non le 3 variabili che hai indicato.

    Puoi provare ad aggiungere un filtro, cioè vai Long solo se il prezzo è > del SuperTrend o di una Media Mobile, oppure vai Short solo quando il prezzo è al di sotto, o altre cose del genere.

    Puoi provare ad aggiungere un trailing stop, qui sul forum ci sono vari codici pronti per l’uso. Magari puoi usare il supporto MTF (Multi Time Frame) per gestire il trailing stop.

    coscar thanked this post
    #146069 quote
    robertogozzi
    Moderator
    Master

    Il calcolo dell’ULCER index è errato, sostituisci le righe 11-18 con:

    N              = 14
    PD             = ((Close - highest[N](close))/highest[N](close))*100
    SquaredAverage = (summation[N](sqr(PD))/N)
    UlcerIndex     = sqrt(SquaredAverage)
    coscar thanked this post
Viewing 3 posts - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.

Ulcer Index System


Trading Generale: Analisi Mercati & Discrezionale

New Reply
Author
author-avatar
coscar @coscar Participant
Summary

This topic contains 2 replies,
has 2 voices, and was last updated by robertogozzi
5 years, 4 months ago.

Topic Details
Forum: Trading Generale: Analisi Mercati & Discrezionale
Language: Italian
Started: 08/21/2019
Status: Active
Attachments: 1 files
Logo Logo
Loading...