Annonce
Réduire
Aucune annonce.
Ads
Réduire
code pour condition2 si condition 1
Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • code pour condition2 si condition 1

    hello a tous ....

    je suis vraiment naze ....

    j ai tout retourner dans tous les sens , les while les if , les compteur ....etc j y arrive pas ...

    j explique j ai un indicateur val .

    je veux un signal qui m affiche " 1" lorsque val a ete au dessus val= 2 et qu il croise val=1.

    si il crois val=1 sans avoir ete au dessus de 2 signal =0

    un debut de code

    Code:
    compteur=0
    
    if val >2 and compteur=0 then
    signal =0
    compteur=compteur+1
    if val crosses under 1 then
    signal=1
    compteur=0
    
    
    endif
    endif
    a votre bon coeur .....

  • #2
    autrement dit je veut signal = 1 lorsque val croise 1 pour la premiere fois apres avoir ete au dessus de 2

    Commentaire


    • #3
      pas trop la moëlle

      mais pourquoi tu n'essaye pas avec un AND

      s'il faut une mémoire de la première condition , tu fais une bascule (condition1 = mémoire à 1 et il faut bien sur une mise à 0 de cette mémoire)

      et if mémoire condition 1 AND condition 2 then

      mais sinon je comprends pas bien la demande pour les conditions

      algèbre de Boole, man

      Commentaire


      • #4
        ok raptor je vais essayer ce que tu dit ....

        je mettrais uen capture sinon

        Commentaire


        • #5
          Cliquez sur l'image pour la voir en taille réelle 

Nom : 		epargne60.jpeg 
Affichages :	1 
Taille :		30,7 Ko 
ID : 			1624294


          fleches noires = indicateur au dessus de deux

          fleches vertes = croisement avec niveau "1" apres que l indicateur ait ete au dessus de "2" .

          je voudrait un code pour avoir un signal ( petite barre ) lorsque il y a une fleche verte et seulement une fleche verte .


          une capture vaut mieux que mille mots

          Commentaire


          • #6
            mais pourquoi tu n'essaye pas avec un AND

            s'il faut une mémoire de la première condition , tu fais une bascule (condition1 = mémoire à 1 et il faut bien sur une mise à 0 de cette mémoire)

            et if mémoire condition 1 AND condition 2 then
            si j ai bien compris........ le croisement ne se fait sur une meme periode . c est ça le probleme .

            Commentaire


            • #7
              Code:
              compteur=0
              
              condition1 = val >2
              condition2 = val crosses under 1
              
              
              if condition1  then
              compteur = 1
              if condition2 and compteur=1 then
              signal = 1
              else
              signal=0
              endif
              endif

              mon dernier code , il doit me manquer quelle que chose ....

              Commentaire


              • #8
                attention pas sur de l'orthographe du cross under (plateforme pas allumer) (makhno m'a tromatiser ) mais l'idée est là

                rem initialisation
                once mémoire1=0
                once fleche verte=0

                if signal cross under niveau2 then
                mémoire1=1
                endif

                if signal cross under niveau1 then
                mémoire1=0
                flecheverte=1
                endif

                if flecheverte[1]=1 then
                flecheverte=0
                endif

                return flecheverte

                le problème est que si le signal cross under niveau 1 et 2 en une seule fois ça va pas le faire
                il faudrait traiter différemment les cas de cross undering
                mais ce que je viens d'écrire est le cas en 2 temps espacés d'au moins un période

                Commentaire


                • #9
                  ok raptor je implementer

                  Commentaire


                  • #10
                    Code:
                    rem initialisation
                    
                    condition1 = val2 crosses under 2
                    condition2 = val2 crosses under 1
                    
                    once condition1=0
                    once condition2=0
                    
                    if condition1 then
                    condition1=1
                    endif
                    
                    if condition2 then
                    condition1=0
                    condition2=1
                    endif
                    
                    if condition2[1]=1 then
                    condition2=0
                    endif
                    
                    
                    
                    RETURN val2 COLOURED(255,0,0) as "signal VENTE", 2, 1, condition2 as " signal histo"

                    Cliquez sur l'image pour la voir en taille réelle 

Nom : 		epargne61.jpeg 
Affichages :	1 
Taille :		44,2 Ko 
ID : 			1624295


                    si j ai bien observé on a un signal a chaque croisement avec niveau "1"

                    alors que on voudrait juste le premier et pas les autres ....

                    Commentaire


                    • #11
                      dans mon code il y a une mémoire "bascule" qui se remet à 0 après la détection de la première flèche verte

                      donc le signal oups j'ai commis une erreur : j'ai ajouté "and mémoire1=1"

                      de fait la détection de la première flecheverte reset mémoire1 et empêche le signal pour une autre flèche verte

                      [PHP]
                      rem initialisation
                      once mémoire1=0
                      once fleche verte=0

                      if signal cross under niveau2 then
                      mémoire1=1
                      endif

                      if signal cross under niveau1 and mémoire1=1 then
                      mémoire1=0
                      flecheverte=1
                      endif

                      if flecheverte[1]=1 then
                      flecheverte=0
                      endif

                      return flecheverte
                      [/PHP]

                      Commentaire


                      • #12
                        Code:
                        rem initialisation
                        
                        condition1 = val2 crosses under 2
                        condition2 = val2 crosses under 1
                        
                        
                        once condition1=0
                        once condition2=0
                        
                        if condition1 then
                        condition1=1
                        
                        endif
                        
                        if condition2=1 and condition1=0 then
                        condition2=0
                        endif
                        
                        if condition2=0 and condition1=1 then
                        condition2=0
                        endif
                        
                        
                        
                        if condition2=1 and condition1=1 then
                        
                        condition2=1
                        endif
                        
                        if condition2[1]=1  then
                        condition2=0
                        endif
                        
                        
                        
                        RETURN val2 COLOURED(255,0,0) as "signal VENTE", 2, 1, condition2 as " signal histo"
                        j ai un peu bricolé le code , je pense que devrait ty retrouver ....

                        tous les signaux sont bons , cependant il me manque certain signaux notemment les signaux qui se font en deux temps , deux bougies .

                        la ou j ai pas de signaux : premiere bougie traverse niveau deux , puis deuxieme bougie traverse niveau 1 , la y a pas de signal .

                        allez encore un effort ....

                        Commentaire


                        • #13
                          connais-tu la fonction logique OR?

                          (expression 1 genre : a AND b) OR (expression 2)

                          Commentaire


                          • #14
                            Code:
                            condition1 = val2 crosses under 2
                            condition2 = val2 crosses under 1
                            //condition3= val2 crosses over 2
                            //condition4= val2 crosses over 1
                            
                            once condition1=0
                            once condition2=0
                            
                            if condition1 then
                            condition1=1
                            
                            endif
                            
                            if condition2=1 and condition1=0 then
                            condition2=0
                            endif
                            
                            if condition2=1 and condition1=1 then
                            condition2=1
                            endif
                            
                            
                            
                            if condition2=1 and condition1=1 then
                            
                            condition2=-1
                            
                            endif
                            
                            if val2[2]>2 and val2<1 and condition1=1  then
                            
                            condition2=1
                            
                            endif
                            
                            if val2[3]>2 and val2<1 and condition1=1  then
                            
                            condition2=3
                            
                            endif
                            
                            if val2[1]>2 and val2<1  then
                            
                            condition2=-3
                            
                            
                            
                            endif
                            
                            if val2[2]>2 and val2<1  then
                            
                            condition2=-3
                            endif
                            
                            //if  condition2[1]=1  then
                            //condition2=0
                            //endif
                            
                            
                            
                            RETURN val2 COLOURED(255,0,0) as "signal VENTE", 2, 1, condition2 as " signal histo"
                            j ai encore bricolé un peu , c est pas super propre , on va dire que ça donne 90 % des signaux , par contre ça commence a doubler les signaux( un signal deux barres ) , mais pour ce soir ça ira ........

                            Commentaire


                            • #15
                              Bonjour,

                              Désolé de vous embêter, je suis nouveau sur le site. J'utilise Proreal depuis peu et j'aimerai écrire une fonction pour un indicateur avec 4 conditions, qui soit applicable pour n'importe quel action. Malheureusement, je n'y arrive pas, l'écriture reste trop complexe je pense. J'ai donc besoin de votre aide svp.
                              Voici les conditions :

                              - Close du jour > TSF (période 7)
                              - TSF (période 7) > MM7
                              - Stochastique > Ligne de signal
                              - Volume du jour > Volume Moyen

                              Merci beaucoup.

                              Commentaire

                              Chargement...
                              X