FiutoPRO Scripting System (in breve FPSS)

Collapse
This topic is closed.
X
X
 
  • Ora
  • Show
Clear All
new posts
  • fnet
    Senior Member
    • Aug 2010
    • 738

    #1

    FiutoPRO Scripting System (in breve FPSS)

    ... scusate se sono in anticipo con la discussione su tale argomento, chiedevo cortesemente a Massimiliano ( e/o a Chi del forum ne abbia esperienza ) se per uno a digiuno di linguaggi di programmazione , è consigliabile di iniziare a studiare Visual Basic o Pascal ? ...
    grazie in anticipo
    fabio
    "Tempus omnia medetur" .... e fà guadagnare di Theta
  • chrisbasetta
    Senior Member
    • Aug 2008
    • 693

    #2
    Ciao...
    Non credo ci sia una differenza abissale...però è una scelta soggettiva...io farei così... cerca dei video in internet su youtube dei due linguaggi...e scegli quello che riesci di primo acchitto a "digerire" meglio :-)

    Comment

    • Apocalips
      Senior Member

      • May 2011
      • 2630

      #3
      Mi sembra di capire che si puo programmare uno script indifferentemente sia in linguaggio basic che pascal ? oppure bisogna necessariamente conoscere entrambi ?


      PS: mi sbaglio o un software per opzioni che integri uno script di programmazione non ancora esiste al mondo?

      complimenti !!...siete fortissimi !!

      grazie
      Apo
      Last edited by Apocalips; 15-01-13, 22:52.
      ....non si desidera ciò che è facile ottenere (Ovidio)....

      Comment

      • Cagalli Tiziano
        Senior Member
        • Dec 2007
        • 11252

        #4
        Originariamente Scritto da Apocalips
        Mi sembra di capire che si puo programmare uno script indifferentemente sia in linguaggio basic che pascal ? oppure bisogna necessariamente conoscere entrambi ?


        PS: mi sbaglio o un software per opzioni che integri uno script di programmazione non ancora esiste al mondo?

        complimenti !!...siete fortissimi !!

        grazie
        Apo
        UNo solo dei due!

        Come avrai visto o comunque come faremo vedere non è un semplice script ma ti permette anche di crearti finestre a piacere, esempio: delta/gamma o theta/giorni e un miliardo di altre cose.
        E\' stato voluto così in modo tale che ogni utente che ha una sua idea la possa realizzare e proverla senza essere vincolato a ciò che c\'è ...

        MI piacerebbe che ci fosse un\'area dove i programmatori, anche utenti, realizzassero dei mini progetti per gli utenti che non sanno programare.

        Così si cresce, così si fanno le innovazioni...in gruppo.
        ..se corri dietro a due lepri, non ne prendi nemmeno una.

        Comment

        • chrisbasetta
          Senior Member
          • Aug 2008
          • 693

          #5
          Originariamente Scritto da Cagalli Tiziano

          MI piacerebbe che ci fosse un\'area dove i programmatori, anche utenti, realizzassero dei mini progetti per gli utenti che non sanno programare.

          Così si cresce, così si fanno le innovazioni...in gruppo.
          Ottima iniziativa! Io sono un autodidatta quindi non assicuro grandi cose però se quest\'area esisterà contribuirò volentieri...
          Prima però attendo il manuale dettagliato dello Script :-)

          Comment

          • cmerru
            Senior Member
            • Nov 2010
            • 422

            #6
            Originariamente Scritto da chrisbasetta
            Ottima iniziativa! Io sono un autodidatta quindi non assicuro grandi cose però se quest\'area esisterà contribuirò volentieri...
            Prima però attendo il manuale dettagliato dello Script :-)
            davvero molto interessante..specie per chi come me ha davvero pochi (o dovrei dire pocherrimi ) rudimenti..per giunta abbastanza arrugginiti!

            Comment

            • fnet
              Senior Member
              • Aug 2010
              • 738

              #7
              Originariamente Scritto da chrisbasetta
              Ciao...
              Non credo ci sia una differenza abissale...però è una scelta soggettiva...io farei così... cerca dei video in internet su youtube dei due linguaggi...e scegli quello che riesci di primo acchitto a "digerire" meglio :-)
              ... ho seguito il Tuo consiglio, grazie ....
              ..... penso andrò a scegliere pascal in quanto "open" ( = software vario gratis , che per uno che inizia non è affatto male )
              "Tempus omnia medetur" .... e fà guadagnare di Theta

              Comment

              • TraderLoki
                Senior Member

                • Feb 2012
                • 388

                #8
                Originariamente Scritto da Cagalli Tiziano
                UNo solo dei due!

                MI piacerebbe che ci fosse un\'area dove i programmatori, anche utenti, realizzassero dei mini progetti per gli utenti che non sanno programare.

                Così si cresce, così si fanno le innovazioni...in gruppo.
                Mi sembra una bellissima idea!

                Non posso dirmi certamente un programmatore (far from it!) ma un po\' di rudimenti di Visual Basic for Applications li ho appresi, per creare qualche simulazione con Excel. Mi guarderò bene lo script e poi contribuirò come posso, molto volentieri!

                Loki
                -----------------------------------------------------------------
                Preferisco le urla della battaglia al silenzio che ne segue.
                -----------------------------------------------------------------

                Comment

                • fnet
                  Senior Member
                  • Aug 2010
                  • 738

                  #9
                  risorse pascal

                  linko alcune risorse free (gratis )
                  http://www.lazarus.freepascal.org/ qui trovate tool di programmazione

                  "Tempus omnia medetur" .... e fà guadagnare di Theta

                  Comment

                  • livioptions
                    Senior Member
                    • Jul 2010
                    • 2340

                    #10
                    Mamma mia come sono rimasto indietro! e ora chi lo recupera quel 2 in pagella ?
                    ... in fondo mi accontento di piccole cose: un piccolo yacht, una piccola villa, una piccola fortuna ...

                    Comment

                    • Apocalips
                      Senior Member

                      • May 2011
                      • 2630

                      #11
                      Originariamente Scritto da livioptions
                      Mamma mia come sono rimasto indietro! e ora chi lo recupera quel 2 in pagella ?
                      Ragazzi questa volta bisogna studiare quindi rimbocchiamoci le maniche e armiamoci di pazienza e volonta se vogliamo fare il definitivo salto nella schiera del 5% di coloro che guadagnano con il trading.

                      ho aperto giusto per curiosità l\'editor dello script
                      ecco quello che ci aspetta:

                      Click image for larger version

Name:	script.png
Views:	1
Size:	75.5 KB
ID:	147139

                      dai dai che ce la facciamo

                      Andrea, Tiziano, Denis, Max mi raccomando accompagnateci in questa nuova avventura come avete sempre fatto

                      Apo
                      Last edited by Apocalips; 16-01-13, 23:35.
                      ....non si desidera ciò che è facile ottenere (Ovidio)....

                      Comment

                      • CIVT
                        Senior Member
                        • Dec 2009
                        • 813

                        #12
                        Premetto che prima di imparare a programmare vorrei imparare a gestire le opzioni in modo corretto .....ad ogni modo nel lontano 1998 in un paio di lezioni mi hanno introdotto al turbopascal (se non ho capito male è uno dei due linguaggi accettati da FPSS) e già all\'epoca mi domandavo a cosa mi sarebbe potuto servire saper programmare....bhe oggi ho la risposta!

                        Venendo a concetti piu\' operativi tempo fà ho utilizzato un software per MT4 che genera codice in automatico, vi incollo uno script molto semplice che lavora sulle EMA, qualcuno mi sa dire che linguaggio è e soprattutto se secondo voi è fattibile fare un copia/incolla dal codice prodotto in automatico allo script di FiutoPro??? Ok...non sarà ottimizzato e scritto in modo elegante ma se gira direi che è un ottimo compromesso!!!


                        Codice:
                        //-------------------------------------------------------------
                        //  Etasoft Inc. Forex EA and Script Generator version 4.4   EA
                        //-------------------------------------------------------------
                        // Keywords: MT4, Forex EA builder, create EA, expert advisor developer
                        
                        #property copyright "Copyright © 2011, Etasoft Inc. Forex EA Generator v4.4"
                        #property link      "http://www.forexgenerator.com/"
                        
                        #include <stdlib.mqh>
                        #include <WinUser32.mqh>
                        
                        // exported variables
                        extern double BuyLots13 = 0.1;
                        extern int BuyStoploss13 = 50;
                        extern int BuyTakeprofit13 = 100;
                        extern double SellLots14 = 0.1;
                        extern int SellStoploss14 = 50;
                        extern int SellTakeprofit14 = 100;
                        
                        
                        // local variables
                        double PipValue=1;    // this variable is here to support 5-digit brokers
                        bool Terminated = false;
                        string LF = "\n";  // use this in custom or utility blocks where you need line feeds
                        int NDigits = 4;   // used mostly for NormalizeDouble in Flex type blocks
                        int ObjCount = 0;  // count of all objects created on the chart, allows creation of objects with unique names
                        int current = 0;
                        
                        
                        
                        int init()
                        {
                            NDigits = Digits;
                            
                            if (false) ObjectsDeleteAll();      // clear the chart
                            
                            
                            Comment("");    // clear the chart
                        }
                        
                        // Expert start
                        int start()
                        {
                            if (Bars < 10)
                            {
                                Comment("Not enough bars");
                                return (0);
                            }
                            if (Terminated == true)
                            {
                                Comment("EA Terminated.");
                                return (0);
                            }
                            
                            OnEveryTick1();
                            
                        }
                        
                        void OnEveryTick1()
                        {
                            if (true == false && true) PipValue = 10;
                            if (true && (NDigits == 3 || NDigits == 5)) PipValue = 10;
                            
                            TechnicalAnalysis3x5();
                            TechnicalAnalysis3x23();
                            
                        }
                        
                        void TechnicalAnalysis3x5()
                        {
                            if ((iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,0) > iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,1)) && (iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,1) > iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,2)) && (iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,2) > iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,3)))
                            {
                                TechnicalAnalysis3x22();
                                
                            }
                        }
                        
                        void TechnicalAnalysis3x22()
                        {
                            if ((iMA(NULL, PERIOD_M30,25,0,MODE_EMA,PRICE_MEDIAN,0) > iMA(NULL, PERIOD_M30,50,0,MODE_EMA,PRICE_MEDIAN,0)) && (iMA(NULL, PERIOD_M30,25,0,MODE_EMA,PRICE_MEDIAN,1) < iMA(NULL, PERIOD_M30,50,0,MODE_EMA,PRICE_MEDIAN,1)) && (iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,0) > iMA(NULL, PERIOD_H4,200,0,MODE_EMA,PRICE_MEDIAN,0)))
                            {
                                BuyOrder13();
                                
                            }
                        }
                        
                        void BuyOrder13()
                        {
                            double SL = Ask - BuyStoploss13*PipValue*Point;
                            if (BuyStoploss13 == 0) SL = 0;
                            double TP = Ask + BuyTakeprofit13*PipValue*Point;
                            if (BuyTakeprofit13 == 0) TP = 0;
                            int ticket = -1;
                            if (true)
                            ticket = OrderSend(Symbol(), OP_BUY, BuyLots13, Ask, 4, 0, 0, "My Expert", 1, 0, Blue);
                            else
                            ticket = OrderSend(Symbol(), OP_BUY, BuyLots13, Ask, 4, SL, TP, "My Expert", 1, 0, Blue);
                            if (ticket > -1)
                            {
                                if (true)
                                {
                                    OrderSelect(ticket, SELECT_BY_TICKET);
                                    bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Blue);
                                    if (ret == false)
                                    Print("OrderModify() error - ", ErrorDescription(GetLastError()));
                                }
                                    
                            }
                            else
                            {
                                Print("OrderSend() error - ", ErrorDescription(GetLastError()));
                            }
                        }
                        
                        void TechnicalAnalysis3x23()
                        {
                            if ((iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,0) < iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,1)) && (iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,1) > iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,2)) && (iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,2) < iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,3)))
                            {
                                TechnicalAnalysis3x10();
                                
                            }
                        }
                        
                        void TechnicalAnalysis3x10()
                        {
                            if ((iMA(NULL, PERIOD_M30,25,0,MODE_EMA,PRICE_MEDIAN,0) < iMA(NULL, PERIOD_M30,50,0,MODE_EMA,PRICE_MEDIAN,0)) && (iMA(NULL, PERIOD_M30,25,0,MODE_EMA,PRICE_MEDIAN,1) < iMA(NULL, PERIOD_M30,50,0,MODE_EMA,PRICE_MEDIAN,1)) && (iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,0) < iMA(NULL, PERIOD_H4,200,0,MODE_EMA,PRICE_MEDIAN,0)))
                            {
                                SellOrder14();
                                
                            }
                        }
                        
                        void SellOrder14()
                        {
                            double SL = Bid + SellStoploss14*PipValue*Point;
                            if (SellStoploss14 == 0) SL = 0;
                            double TP = Bid - SellTakeprofit14*PipValue*Point;
                            if (SellTakeprofit14 == 0) TP = 0;
                            int ticket = -1;
                            if (true)
                            ticket = OrderSend(Symbol(), OP_SELL, SellLots14, Bid, 4, 0, 0, "My Expert", 1, 0, Red);
                            else
                            ticket = OrderSend(Symbol(), OP_SELL, SellLots14, Bid, 4, SL, TP, "My Expert", 1, 0, Red);
                            if (ticket > -1)
                            {
                                if (true)
                                {
                                    OrderSelect(ticket, SELECT_BY_TICKET);
                                    bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Red);
                                    if (ret == false)
                                    Print("OrderModify() error - ", ErrorDescription(GetLastError()));
                                }
                                    
                            }
                            else
                            {
                                Print("OrderSend() error - ", ErrorDescription(GetLastError()));
                            }
                        }
                        
                        
                        
                        int deinit()
                        {
                            if (false) ObjectsDeleteAll();
                            
                            
                        }
                        Last edited by CIVT; 18-01-13, 07:17.

                        Comment

                        • Francario Massimiliano
                          Administrator
                          • Jul 2008
                          • 1033

                          #13
                          Salve,
                          Originariamente Scritto da CIVT
                          Venendo a concetti piu\' operativi tempo fà ho utilizzato un software per MT4 che genera codice in automatico, vi incollo uno script molto semplice che lavora sulle EMA, qualcuno mi sa dire che linguaggio è e soprattutto se secondo voi è fattibile fare un copia/incolla dal codice prodotto in automatico allo script di FiutoPro??? Ok...non sarà ottimizzato e scritto in modo elegante ma se gira direi che è un ottimo compromesso!!!


                          Codice:
                          //-------------------------------------------------------------
                          //  Etasoft Inc. Forex EA and Script Generator version 4.4   EA
                          //-------------------------------------------------------------
                          // Keywords: MT4, Forex EA builder, create EA, expert advisor developer
                          
                          #property copyright "Copyright © 2011, Etasoft Inc. Forex EA Generator v4.4"
                          #property link      "http://www.forexgenerator.com/"
                          
                          #include <stdlib.mqh>
                          #include <WinUser32.mqh>
                          
                          // exported variables
                          extern double BuyLots13 = 0.1;
                          extern int BuyStoploss13 = 50;
                          extern int BuyTakeprofit13 = 100;
                          extern double SellLots14 = 0.1;
                          extern int SellStoploss14 = 50;
                          extern int SellTakeprofit14 = 100;
                          
                          
                          // local variables
                          double PipValue=1;    // this variable is here to support 5-digit brokers
                          bool Terminated = false;
                          string LF = "\n";  // use this in custom or utility blocks where you need line feeds
                          int NDigits = 4;   // used mostly for NormalizeDouble in Flex type blocks
                          int ObjCount = 0;  // count of all objects created on the chart, allows creation of objects with unique names
                          int current = 0;
                          
                          
                          
                          int init()
                          {
                              NDigits = Digits;
                              
                              if (false) ObjectsDeleteAll();      // clear the chart
                              
                              
                              Comment("");    // clear the chart
                          }
                          
                          // Expert start
                          int start()
                          {
                              if (Bars < 10)
                              {
                                  Comment("Not enough bars");
                                  return (0);
                              }
                              if (Terminated == true)
                              {
                                  Comment("EA Terminated.");
                                  return (0);
                              }
                              
                              OnEveryTick1();
                              
                          }
                          
                          void OnEveryTick1()
                          {
                              if (true == false && true) PipValue = 10;
                              if (true && (NDigits == 3 || NDigits == 5)) PipValue = 10;
                              
                              TechnicalAnalysis3x5();
                              TechnicalAnalysis3x23();
                              
                          }
                          
                          void TechnicalAnalysis3x5()
                          {
                              if ((iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,0) > iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,1)) && (iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,1) > iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,2)) && (iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,2) > iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,3)))
                              {
                                  TechnicalAnalysis3x22();
                                  
                              }
                          }
                          
                          void TechnicalAnalysis3x22()
                          {
                              if ((iMA(NULL, PERIOD_M30,25,0,MODE_EMA,PRICE_MEDIAN,0) > iMA(NULL, PERIOD_M30,50,0,MODE_EMA,PRICE_MEDIAN,0)) && (iMA(NULL, PERIOD_M30,25,0,MODE_EMA,PRICE_MEDIAN,1) < iMA(NULL, PERIOD_M30,50,0,MODE_EMA,PRICE_MEDIAN,1)) && (iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,0) > iMA(NULL, PERIOD_H4,200,0,MODE_EMA,PRICE_MEDIAN,0)))
                              {
                                  BuyOrder13();
                                  
                              }
                          }
                          
                          void BuyOrder13()
                          {
                              double SL = Ask - BuyStoploss13*PipValue*Point;
                              if (BuyStoploss13 == 0) SL = 0;
                              double TP = Ask + BuyTakeprofit13*PipValue*Point;
                              if (BuyTakeprofit13 == 0) TP = 0;
                              int ticket = -1;
                              if (true)
                              ticket = OrderSend(Symbol(), OP_BUY, BuyLots13, Ask, 4, 0, 0, "My Expert", 1, 0, Blue);
                              else
                              ticket = OrderSend(Symbol(), OP_BUY, BuyLots13, Ask, 4, SL, TP, "My Expert", 1, 0, Blue);
                              if (ticket > -1)
                              {
                                  if (true)
                                  {
                                      OrderSelect(ticket, SELECT_BY_TICKET);
                                      bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Blue);
                                      if (ret == false)
                                      Print("OrderModify() error - ", ErrorDescription(GetLastError()));
                                  }
                                      
                              }
                              else
                              {
                                  Print("OrderSend() error - ", ErrorDescription(GetLastError()));
                              }
                          }
                          
                          void TechnicalAnalysis3x23()
                          {
                              if ((iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,0) < iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,1)) && (iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,1) > iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,2)) && (iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,2) < iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,3)))
                              {
                                  TechnicalAnalysis3x10();
                                  
                              }
                          }
                          
                          void TechnicalAnalysis3x10()
                          {
                              if ((iMA(NULL, PERIOD_M30,25,0,MODE_EMA,PRICE_MEDIAN,0) < iMA(NULL, PERIOD_M30,50,0,MODE_EMA,PRICE_MEDIAN,0)) && (iMA(NULL, PERIOD_M30,25,0,MODE_EMA,PRICE_MEDIAN,1) < iMA(NULL, PERIOD_M30,50,0,MODE_EMA,PRICE_MEDIAN,1)) && (iMA(NULL, PERIOD_H4,50,0,MODE_EMA,PRICE_MEDIAN,0) < iMA(NULL, PERIOD_H4,200,0,MODE_EMA,PRICE_MEDIAN,0)))
                              {
                                  SellOrder14();
                                  
                              }
                          }
                          
                          void SellOrder14()
                          {
                              double SL = Bid + SellStoploss14*PipValue*Point;
                              if (SellStoploss14 == 0) SL = 0;
                              double TP = Bid - SellTakeprofit14*PipValue*Point;
                              if (SellTakeprofit14 == 0) TP = 0;
                              int ticket = -1;
                              if (true)
                              ticket = OrderSend(Symbol(), OP_SELL, SellLots14, Bid, 4, 0, 0, "My Expert", 1, 0, Red);
                              else
                              ticket = OrderSend(Symbol(), OP_SELL, SellLots14, Bid, 4, SL, TP, "My Expert", 1, 0, Red);
                              if (ticket > -1)
                              {
                                  if (true)
                                  {
                                      OrderSelect(ticket, SELECT_BY_TICKET);
                                      bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Red);
                                      if (ret == false)
                                      Print("OrderModify() error - ", ErrorDescription(GetLastError()));
                                  }
                                      
                              }
                              else
                              {
                                  Print("OrderSend() error - ", ErrorDescription(GetLastError()));
                              }
                          }
                          
                          
                          
                          int deinit()
                          {
                              if (false) ObjectsDeleteAll();
                              
                              
                          }
                          Il codice in questione, a quanto vedo è C. Dire che questo codice è molto semplice mi pare un eufemismo, diciamo così.

                          Questo codice non si potrà riutilizzare in FiutoPRO.

                          Max Francario
                          Manuale di beeTrader
                          Manuale di Fiuto Beta

                          Comment

                          • Andrea Cagalli
                            Senior Member
                            • Oct 2010
                            • 3995

                            #14
                            Ciao a tutti,
                            vi lascio il link della discussione che abbiamo aperto in una sezione apposita del forum proprio per lo scambio di idee e consigli tra gli utenti sullo script di FiutoPRO.

                            Questa discussione è creata appositamente per lo scambio di idee e consigli tra gli utenti sul sistema di scripting di FiutoPRO. Questa discussione NON è moderata.... spazio alla vostra fantasia !


                            Ciao Ciao
                            Manuale beeTrader

                            Comment

                            Working...