Concatenare dati numerici

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #183910 quote
    Mario Bertagnini
    Participant
    New

    Buongiorno,

    ho la necessità di fate un backtest  che mi entri su un etf il 15 di dicembre e mi esca il 15 di febbraio dell’anno successivo, per fare ciò ho scritto il codice in allegato, scusate la forma grezza ma essendo alle prime armi programmo in modo infimo, purtroppo mi da errore sulla variabile “c” e “d” che non vengono riconosciute dall’interprete, come faccio a concatenare la variabile x (o y)che mi da l’anno con il restante valore numerico che mi rappresenta mese e giorno. C’è un modo alternativo per (immagino proprio di si) per ottenere quello che vorrei? Grazie in anticipo per le eventuali risposte.

    Mario

    for i=0 to 21 do
    x=2000+i
    y=x+1
    c=x1215
    d=y0215
    a=(date=c)
    b=(date=d)
    // Condizioni per entrare su posizioni long
    IF NOT LongOnMarket AND dayofweek[a]=1 THEN
    BUY 10000 cash roundedup AT MARKET
    elsIF NOT LongOnMarket AND dayofweek[a]=2 THEN
    BUY 10000 cash roundedup AT MARKET
    elsIF NOT LongOnMarket AND dayofweek[a]=3 THEN
    BUY 10000 cash roundedup AT MARKET
    elsIF NOT LongOnMarket AND dayofweek[a]=4 THEN
    BUY 10000 cash roundedup AT MARKET
    elsIF NOT LongOnMarket AND dayofweek[a]=5 THEN
    BUY 10000 cash roundedup AT MARKET
    ENDIF
    // Condizioni per uscire da posizioni long
    If LongOnMarket AND dayofweek[b]=1 THEN
    SELL AT MARKET
    elsIf LongOnMarket AND dayofweek[b]=2 THEN
    SELL AT MARKET
    elsIf LongOnMarket AND dayofweek[b]=3 THEN
    SELL AT MARKET
    elsIf LongOnMarket AND dayofweek[b]=4 THEN
    SELL AT MARKET
    elsIf LongOnMarket AND dayofweek[b]=5 THEN
    SELL AT MARKET
    ENDIF
    next
    #183920 quote
    robertogozzi
    Moderator
    Master

    Alcune variabili di una sola lettera sono riservate, chiamale dd e cc, o in altro modo che preferisci.

    Ad ogni modo, le righe 4 e 5, se hanno lo scopo di concatenare dei valori numerici, non vanno bene per due motivi: 1) non si possono fare concatenazioni di alcun genere e 2) se anche fosse possibile non avresti usato nessun operatore di concatenazione.

    Una data ha il formato AAAAMMGG, per cui l’anno è semplice da inserire, basta scrivere:

    MiaData = 2021

    Per il mese, ad esempio 12 (Dicembre), devi aggiungere 12 all’anno moltiplicato per 10000 in modo da fargli saltare l’anno ed andare nel posto giusto (es.: 202112):

    MiaData = (MiaData * 10000) + 12

    Per il mese dovrai moltiplicare MiaData per 100 per fare spazio al giorno, ad esempio, per aggiungere il giorno 18, devi scrivere:

    MiaData = (MiaData * 100) + 18

    Alla fine MiaData conterrà il numero 20211218.

    Mario Bertagnini thanked this post
Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.

Concatenare dati numerici


ProOrder: Trading Automatico & Backtesting

New Reply
Author
Summary

This topic contains 1 reply,
has 2 voices, and was last updated by robertogozzi
4 years, 1 month ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 12/27/2021
Status: Active
Attachments: No files
Logo Logo
Loading...