// Indicatore Study Simulatore Giorno Della Settimana //
// * ATTENZIONE USARE SOLO SU TIMFRAME DAILY !!! * //
// Se Manca Barra Input Il Trade Non Verrà Considerato //
// ======================================================================
// Simulatore Giorno della Settimana - Capitale fisso per trade
// Scopo: valutare performance dei singoli giorni della settimana
// su base storica, investendo sempre % Capitale Iniziale Da Input per trade (virtuale)
// Shares frazionarie ES: 0.001 BTC
// Trade: Open E Close Stessa Barra
// Statistiche finali con: "Equity ($)" / "Giorno Selez" / "Num Trades" / "% Positivi" / "Dev.Std"
// ======================================================================
// ======================================================================
// Indicatore da confrontare con INDICATORE DAY OF WEEK BIAS ANALYZER allineandolo con ingresso stesso giorno.
// ======================================================================
// ======================================================================
// "(STD)" Un valore alto di std_dev significa che i trade hanno risultati molto variabili: alcuni molto vincenti, altri molto perdenti.
// "(STD)" Un valore basso significa che i trade hanno risultati più consistenti, vicini alla media.
// "% Positivi" Calcolo: 1G+1G+1G+1L = 3/4? (3 Gain, 1 Lost) Da verificare all'ultima Barra del Grafico la % di Positivita
// ======================================================================
Inputs:
My_TDOM_Long(1), // Giorno della settimana da testare (1=Lunedì ... 5=Venerdì)
Fixed_Trade_Amount(25000); // Capitale fisso per ogni trade
Vars:
virtual_equity(0),
virtual_entry_price(0),
virtual_qty(0),
in_trade(false),
trade_profit(0),
trade_count(0),
trade_count_pos(0),
sum_profit(0),
sum_sq_profit(0),
mean_profit(0),
std_dev(0),
perc_positive(0),
sum_profit_input_day(0),
trade_count_input_day(0),
mean_profit_input_day(0);
// -------------------------------------------------------------
// Inizializza variabili alla prima barra
// -------------------------------------------------------------
if CurrentBar = 1 then begin
virtual_equity = 0;
trade_count = 0;
trade_count_pos = 0;
sum_profit = 0;
sum_sq_profit = 0;
sum_profit_input_day = 0;
trade_count_input_day = 0;
mean_profit_input_day = 0;
end;
// -------------------------------------------------------------
// Segnale di ingresso e uscita nello stesso giorno
// -------------------------------------------------------------
if DayOfWeek(Date) = My_TDOM_Long then begin
// Calcolo quantità e profitto al close dello stesso giorno
virtual_entry_price = Open;
virtual_qty = Fixed_Trade_Amount / Open;
trade_profit = (Close - virtual_entry_price) * virtual_qty;
virtual_equity = virtual_equity + trade_profit;
// Aggiornamento contatori
trade_count = trade_count + 1;
if trade_profit > 0 then
trade_count_pos = trade_count_pos + 1;
// Aggiornamento somme per media e deviazione standard
sum_profit = sum_profit + trade_profit;
sum_sq_profit = sum_sq_profit + trade_profit * trade_profit;
mean_profit = sum_profit / trade_count;
if trade_count > 1 then
std_dev = SquareRoot((sum_sq_profit - (sum_profit * sum_profit) / trade_count) / (trade_count - 1))
else
std_dev = 0;
// Percentuale di positività
perc_positive = (trade_count_pos / trade_count) * 100;
// Aggiornamento cumulativo per media input day
sum_profit_input_day = sum_profit_input_day + trade_profit;
trade_count_input_day = trade_count_input_day + 1;
// -------------------------------------------------------------
// Print singola riga
// -------------------------------------------------------------
Print("Trade ", trade_count,
" | Entry Price: ", virtual_entry_price:0:2,
" | Entry Date: ", Date,
" | Entry Time: ", Time,
" | Exit Price: ", Close:0:2,
" | Exit Date: ", Date,
" | Exit Time: ", Time,
" | Qty: ", virtual_qty:0:4,
" | Profit: ", trade_profit:0:2,
" | Equity: ", virtual_equity:0:2,
" | Day of Week: ", DayOfWeek(Date));
end;
// -------------------------------------------------------------
// Plot giorno selezionato + statistiche
// -------------------------------------------------------------
Plot1(virtual_equity, "Equity ($)");
Plot2(My_TDOM_Long, "Giorno Selez");
Plot3(DayOfWeek(Date), "Giorno Corrente");
Plot4(trade_count, "Num Trades");
Plot5(perc_positive, "% Positivi");
Plot6(std_dev, "Dev.Std", Green);
// -------------------------------------------------------------
// Stampa media finale del giorno selezionato una sola volta
// -------------------------------------------------------------
if LastBarOnChart then begin
if trade_count_input_day > 0 then
mean_profit_input_day = sum_profit_input_day / trade_count_input_day
else
mean_profit_input_day = 0;
Print("----------------------------------------------------------------------");
Print("Media Profit/Loss $ per Day Input ", My_TDOM_Long:0:0, ": ", mean_profit_input_day:0:2);
print("% Positivi: ", perc_positive:0:2);
Print("----------------------------------------------------------------------");
end;