martes, 24 de abril de 2018

allora Michelangelo...non è semplice ma l'idea è questa
la stringa=if LastOpIsStopLoss("SL") then ContaSL=ContaSL +1; endif;....fa il suo dovere e conta giusto ma appunto tu vuoi una cosa differente perciò ad esempio bisogna cambiare ragionamento
esempio...gli dico ...se ultima operazione era long e sono stato stoppato la condizione stoplong=1....
if LastOpIsStopLoss("SL") and  lastopclosed=1 then condizlgstoppato=1;endif;...poi bisogna azzerare questa condizione( e questo bisogna capire bene come farlo e forse la stringa che ti metto non basta)...if positiondir=-1 then condizlgstoppato=0;endif;
e poi bisogna fare il contatore che riporta la situazione
if condizlgstoppato>condizlgstoppato[1] then contaalfa=contaalfa+1;endif;
nel grafico sotto mi riporterebbe ad esempio un nº di 4 operazioni long stoppate nell'ultimo anno...ma a regola son 5( percio qualcosa non funziona su come azzerare comunque il ragionamento di base dovrebbe funzionare...ora spadello e nel pomeriggio ci guardo meglio)

7 comentarios:

  1. prova cosí
    if LastOpIsStopLoss("SL") and lastopclosed=1 then condizlgstoppato=1;endif;
    //...poi bisogna azzerare questa condizione(
    if positiondir<>0 then condizlgstoppato=0;endif;
    if condizlgstoppato>condizlgstoppato[1] then contaalfa=contaalfa+1;endif;

    quando rientra in posizione ti azzera la condizione, che nel frattempo da flat rimane a 1 e non cresce il contatore
    ora devo vedere se basta sostituire "SL_MOD" o creare nuiovi contatori

    ps. non ho controllato correttezza e veridicitá del numero di operazioni calcolate

    ResponderEliminar
  2. controllato, sembra funzionare, ad ogni tipo di operazione ed etichetta abbini un contatore, che viene sempre azzerato con una nuova operazione

    if LastOpIsStopLoss("SL") and lastopclosed=1 then condizlgstoppato=1;endif;
    if positiondir<>0 then condizlgstoppato=0;endif;
    if condizlgstoppato>condizlgstoppato[1] then contaSL=contaSL+1;endif;
    if LastOpIsStopLoss("SL_MOD1") and lastopclosed=1 then condMOD1stop=1;endif;
    if positiondir<>0 then condMOD1stop=0;endif;
    if condMOD1stop>condMOD1stop[1] then contaMOD1=contaMOD1+1;endif;
    if LastOpIsStopLoss("SL_MOD2") and lastopclosed=1 then condMOD2stop=1;endif;
    if positiondir<>0 then condMOD2stop=0;endif;
    if condMOD2stop>condMOD2stop[1] then contaMOD2=contaMOD2+1;endif;
    if LastOpIsStopLoss("SL_MOD3") and lastopclosed=1 then condMOD3stop=1;endif;

    puó essere utile per capire quante volte esce da una parte ed ottimizzare certi parametri

    ResponderEliminar
    Respuestas
    1. allora si...ho controllato report...corrispondono nº stop con conteggio...if LastOpIsStopLoss("SL") and lastopclosed=1 then condizlgstoppato=1;else condizlgstoppato=0;endif;...così azzera giusto

      Eliminar
    2. si...usalo per eliminare le stringhe che fan più danni che benefici ma non ottimizzare troppo

      Eliminar
  3. Bruno un'altra domanda, più difficile ora :)
    Ho una certa condizione di ingresso, e la voglio ritardare di due/tre/tot candele (e verificare quindi se esiste ancora)... Sono attualmente su un 5 minuti che estrae valori a 2 ore, e e all'inizio dell'ora c'è sempre un bel movimento e sballa i dati..
    Ho visto i manuali ma non ho trovato un comando tipo aspetta o resta fermo...
    Grazie

    ResponderEliminar
  4. devi dirgli...se pippo è maggiore di pluto then condizioneentrataok=1;..poi fai un contatore e gli dici se condizione entrataok=1 then contacandele=contacandele+1;...cosi hai una situazione di ingresso ed il conteggio man mano che rimane attivo....e poi lo fai entrare quando vuoi...esempio...if condizioneentrataok=1 and contacandele=5 then enterlong.....

    ResponderEliminar

 era dal 26 marzo che i sistemi non si posizionavano long...oggi lo han fatto...area 21.90 posizionano il 1º take profit