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.
Ciao Ciao
FiutoPRO Scripting System (in breve FPSS)
Collapse
This topic is closed.
X
X
-
Salve,
Il codice in questione, a quanto vedo è C. Dire che questo codice è molto semplice mi pare un eufemismo, diciamo così. :laughing: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!!!:cheerful:
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(); }
Questo codice non si potrà riutilizzare in FiutoPRO.
Max FrancarioLeave a comment:
-
Premetto che prima di imparare a programmare vorrei imparare a gestire le opzioni in modo corretto :w00t:.....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!:silly:
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!!!:cheerful:
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.Leave a comment:
-
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:
script.png
dai dai che ce la facciamo :calp:
Andrea, Tiziano, Denis, Max mi raccomando accompagnateci in questa nuova avventura come avete sempre fatto
ApoLast edited by Apocalips; 16-01-13, 23:35.Leave a comment:
-
Mamma mia come sono rimasto indietro! :caspita: e ora chi lo recupera quel 2 in pagella ?Leave a comment:
-
risorse pascal
linko alcune risorse free (gratis )
http://www.lazarus.freepascal.org/ qui trovate tool di programmazione
Leave a comment:
-
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!
LokiLeave a comment:
-
... 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 )Leave a comment:
-
davvero molto interessante..specie per chi come me ha davvero pochi (o dovrei dire pocherrimi :laughing: ) rudimenti..per giunta abbastanza arrugginiti!Leave a comment:
-
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 :-)Leave a comment:
-
UNo solo dei due!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 !! :calp::calp:
grazie
Apo
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.
Leave a comment:
-
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 !! :calp::calp:
grazie
ApoLast edited by Apocalips; 15-01-13, 22:52.Leave a comment:
-
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 :-)Leave a comment:
-
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
fabioTag: Nessuno

Leave a comment: