Risposta

Il trading di curve azionarie potrebbe essere molto semplice in MC9s+.

3 risposte

eastpeace

Cliente, bbp_partecipante, comunità, sq-ultimate, 305 risposte.

Visita il profilo

4 anni fa #242452

tomas262

Amministratore, sq-ultimate, 2 risposte.

Visita il profilo

4 anni fa #242460

Salve,

Se ci si riferisce al controllo delle azioni, questo non è ancora supportato da SQX. Si potrebbe aggiungere una richiesta di funzionalità per questo, ma avrebbe una priorità bassa nello sviluppo.

0

eastpeace

Cliente, bbp_partecipante, comunità, sq-ultimate, 305 risposte.

Visita il profilo

4 anni fa #242862

Ma non sono sicuro che il trading azionario sia migliore o meno.

 

Dipende dal tipo di strategia e dal controllo della curva azionaria, dal modo in cui l'ordine viene filtrato.

 

È facile negoziare un simbolo con una sola strategia. Abbiamo bisogno di una copia della strategia, una (A) per il conto di trading simulato, un'altra (B) per un conto reale, o un altro conto, nel Portfolio di Multicharts.

 

Dobbiamo aggiungere una condizione per controllare il capitale e passare questo valore al segnale di gestione del portafoglio.

 

Lasciate che la strategia A funzioni sempre. La strategia B dipende dalla forma della curva di capitale della strategia A e dal vostro metodo di controllo del capitale.

 

Ecco un esempio di filtro della curva azionaria in base alla sua media. Quando l'azione è al di sotto della media, interrompe l'entrata. Riprende a operare quando la curva è al di sopra della media.

 

Ma il risultato è peggiore dell'originale.

 

Inseritelo nel segnale della vostra strategia di trading, alla fine.

//inizio

Ingressi:
LRSlopeLen(30);
Array: a_NetPL[](0);
condition1 = Array_setmaxindex(a_NetPL,LRSlopeLen);
Vars:
TotTds(0), tradesnum(0),equityavg(0),equitystd(0);

TotTds = TotalTrades;
Se TotTds > TotTds[1] allora iniziare
Per valore1 = LRSlopeLen fino a 2 iniziare
a_NetPL[valore1] = a_NetPL[valore1-1];
fine;
a_NetPL[1] = Capitale iniziale + NetProfit;

Per valore1 = LRSlopeLen fino a 1 iniziare
se a_NetPL[valore1] = 0 allora iniziare
tradesnum = 0; // #trades meno di 30
fine
altrimenti iniziare
tradesnum = 1;
fine;
//print("date=",d," time=",Time," equity=", "Netprofit",value1," ",a_NetPL[value1]," avg=",equityavg);
fine;
fine;
//se gli scambi sono inferiori a 30, lasciare che la strategia venga sempre eseguita
se tradesnum = 0 allora pmms_set_strategy_named_num(pmms_strategies_get_by_symbol_name(symbolname), "euityaverage", 1);
se tradesnum = 1 allora iniziare
equityavg = AverageArray(a_NetPL,LRSlopeLen);

se a_NetPL[1]>equityavg allora //quando l'equity è superiore alla media, si esegue la strategia
pmms_set_strategy_named_num(pmms_strategies_get_by_symbol_name(symbolname), "euityaverage", 1);
se a_NetPL[1]<equityavg allora // quando l'equity è inferiore alla media, la strtegia si ferma
pmms_set_strategy_named_num(pmms_strategies_get_by_symbol_name(symbolname), "euityaverage", 0);
fine;

 

//termine

Ecco il segnale di gestione del portafoglio

// inizio

 

variabili:
portfolioStrategies(0),
EquitySlope(0);

pmms_strategies_deny_entries_all();
pmms_strategy_allow_entries(0); //consente ogni operazione nel conto di simulazione, strategia A

EquitySlope = pmms_get_strategy_named_num(0, "euityaverage"); //ottenere il valore del filtro nella strategia A

se EquitySlope=1 allora pmms_strategy_allow_entries(1); //eseguire la strategia B quando l'equity della strategia B è superiore alla media

//termine

 

Link di riferimento,

https://www.multicharts.com/discussion/viewtopic.php?f=1&t=49287&p=119431#p119431

0

tomas262

Amministratore, sq-ultimate, 2 risposte.

Visita il profilo

4 anni fa #243024

Grazie per il codice utile.

Per quanto riguarda il controllo azionario in generale. Credo che funzioni solo in modo limitato. Può funzionare per ALCUNI sistemi che tendono a concatenare vincitori e perdenti in strisce, ovviamente. Ma con questo metodo si può anche perdere l'inizio della striscia vincente! Per la maggior parte dei sistemi non ha molto senso. Non appena si dispone di un sistema con un'aspettativa positiva, è meglio essere nel trade successivo. Ho visto molti sistemi che tendono a dare il meglio di sé proprio dopo aver raggiunto il peggior drawdown. Che tipo di aspettativa è rappresentata dal fatto che l'ultimo trade è finito in perdita? Fornisce maggiori possibilità che l'operazione successiva sia perdente? Non credo. Sembra ottimo se applicato alle curve azionarie storiche, ma tutte le sequenze con tutti i sistemi sono uniche e casuali.

0

Stai visualizzando 3 risposte - da 1 a 3 (di 3 totali)