Announcement

Collapse
No announcement yet.

Ea da sperimentare

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #46
    Concordo , cosa che ho fatto rileggendomi la sintassi del if else , questo è il risultato, funziona senza errori ma ... mi sono accorto che c'era una falla nel mio ragionamento: non è possibile avere un solo ordine perchè per arrivare all'ultimo devo per forza passare dai 2 livelli precedenti. quindi, di fatto, tutte le condizioni si avverano. Ho tentato di aggirare il problema introducendo flag-signal_buy differenziati ma , come si vede dal listato ci sono 3 true , quindi mi apre contemporaneamente tre ordini !!!!.
    Ergo devo trovare un altro escamotage per avere un solo ordine .

    Comunque il nuovo e unico blocco per Buy è il seguente :

    Code:
     if ((Reg_adesso-Reg_ieri)>0.0020&&(Reg_adesso-Reg_ieri)<0.0039)
     {
    flag_signal_buy1=true;
    flag_signal_buy2=false;
    flag_signal_buy3=false;
    Order_id=1;
       }
    else if
    ((Reg_adesso-Reg_ieri)>0.0040&&(Reg_adesso-Reg_ieri)<0.0059)
     {
    flag_signal_buy1=false;
    flag_signal_buy2=true;
    flag_signal_buy3=false;
    Order_id=2;
       }
    else if
    ((Reg_adesso-Reg_ieri)>0.0060)
     {
    flag_signal_buy1=false;
    flag_signal_buy2=false;
    flag_signal_buy3=true;
    Order_id=3;
    }

    Comment


      #47
      Forse l'idea vincente sarebbe di pescare il delta piu "highest" tra i tre delta e quindi assegnare l'ordine conseguente : più alto è il delta pips maggiore il lotto dell'ordine
      .

      Comment


        #48
        alla fine ci sono riuscito .
        Ho inserito dei custom if con queste istruzioni :

        Code:
        flag_signal_buy1==true&&flag_signal_buy2==false&&flag_signal_buy3==false
        Questo sopra apre lotto 0,1

        Code:
        flag_signal_buy1==true&&flag_signal_buy2==true&&flag_signal_buy3==false
        quest'altro apre lotto 0,3


        Code:
        flag_signal_buy1==true&&flag_signal_buy2==true&&flag_signal_buy3==true
        quest'ultimo apre 0,5 lotti

        idem per i sell.

        Comment


          #49
          Per completezza aggiungo che dal codice al p.47 ho rimosso la condizione : &&(Reg_adesso-Reg_ieri)<0.0039)

          lasciando quindi : if ((Reg_adesso-Reg_ieri)>0.0020
          if ((Reg_adesso-Reg_ieri)>0.0040
          etc

          Quindi i flag sono attivati dal superamento delle soglie e non più riferiti all'intervallo , come previsto nella prima ipotesi .

          Comment


            #50
            Giusto per concludere l'argomento allego mql finale con emissione di un solo ordine a progressione variabile in cui K1_b , K2_b , K3_b e K1_s .... rappresentano rispettivamente per buy e per sell i moltiplicatori dell'ordine, ovvero se impostato lotto fisso =0.1 con K =1 si ha sempre 0,1 , con k= 1,5 si ha lotto 0,15 con K =3 si ha 0,3 .
            Il moltiplicatore opera anche con il lotto variabile.

            Polaris_9_multi_XX_8A.mq4

            nello schema dell'expert si ha, a inizio della catena, i 3 filtri basati sulla regressione , ovvero:
            true per lotto 0,1 se prezzo attuale è compreso tra 0.0020 e 0.0039
            true 2 se prezzo > di 0.0040 e< 0.0059 ;
            true 3 se prezzo > di 0.0060
            Attached Files

            Comment

            Working...
            X