Aiuto creazione EA

Sezione dedicata a metatrader (ed altre piattaforme) ed al suo linguaggio di programmazione per il trading automatico
Aedo17
Messaggi: 8
Iscritto il: 02/03/2019, 18:31

Aiuto creazione EA

Messaggio da Aedo17 » 04/03/2019, 23:55

Buonasera a tutti,

scusate se Vi rompo le scatole, ma sto cercando di creare i miei primi EA ma ho molte difficoltà.

Ho provato a crearne uno semplicissimo riguardo l'RSI: entrare long ai minimi ed entrare short ai massimi.
il problema è che mi apre moltissime posizioni in contemporanea e me le chiude immediatamente e non capisco il perchè.

di seguito vi allego lo script se gentilmente date un occhiate e mi spiegate cosa sto sbagliando così da poter capire.

grazie in anticipo

extern int MagicNumber=10001;
extern double Lots =0.1;
extern double StopLoss=100;
extern double TakeProfit=100;
extern int TrailingStop=0;
extern int Slippage=3;
//+------------------------------------------------------------------+
// expert start function
//+------------------------------------------------------------------+
int start()
{
double MyPoint=Point;
if(Digits==3 || Digits==5) MyPoint=Point*10;

double TheStopLoss=0;
double TheTakeProfit=0;
if( TotalOrdersCount()==0 )
{
int result=0;
if((iRSI(NULL,PERIOD_H1,14,PRICE_CLOSE,0)<28)) // Here is your open buy rule
{
result=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"EA Generator www.ForexEAdvisor.com",MagicNumber,0,Blue);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
}
return(0);
}
if((iRSI(NULL,0,14,PRICE_CLOSE,0)<70)) // Here is your open Sell rule
{
result=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"EA Generator www.ForexEAdvisor.com",MagicNumber,0,Red);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
}
return(0);
}
}

for(int cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber
)
{
if(OrderType()==OP_BUY)
{
if((iRSI(NULL,0,14,PRICE_CLOSE,0)<45)) //here is your close buy rule
{
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,Red);
}
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
{
if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}
else
{
if((iRSI(NULL,0,14,PRICE_CLOSE,0)<60)) // here is your close sell rule
{
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,Red);
}
if(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
{
if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
return(0);
}

int TotalOrdersCount()
{
int result=0;
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);
if (OrderMagicNumber()==MagicNumber) result++;

}
return (result);
}

IntoTheWild1990
Messaggi: 188
Iscritto il: 12/10/2016, 17:44

Re: Aiuto creazione EA

Messaggio da IntoTheWild1990 » 05/03/2019, 12:28

Ma da dove lo hai copiato questo rottame?
Una fenice risorge dalla cenere torna al fuoco per quanto tu la possa uccidere.

Seguici su facebook
https://www.facebook.com/eamt4forex/?mo ... _todo_tour
Seguici su Telegram
FeniceTradingSystem
Rent mt4 ea
https://t.me/fenicetradingsystem

IntoTheWild1990
Messaggi: 188
Iscritto il: 12/10/2016, 17:44

Re: Aiuto creazione EA

Messaggio da IntoTheWild1990 » 05/03/2019, 12:29

:dry: Ma da dove lo hai copiato questo rottame?
Con sito web incluso dell' apertura
Una fenice risorge dalla cenere torna al fuoco per quanto tu la possa uccidere.

Seguici su facebook
https://www.facebook.com/eamt4forex/?mo ... _todo_tour
Seguici su Telegram
FeniceTradingSystem
Rent mt4 ea
https://t.me/fenicetradingsystem

IntoTheWild1990
Messaggi: 188
Iscritto il: 12/10/2016, 17:44

Re: Aiuto creazione EA

Messaggio da IntoTheWild1990 » 05/03/2019, 19:48

:censored: Ammesso che lo abbia scritto tu anche se ho i miei dubbi...

Hai sbagliato il range dell' rsi

Fai aprire buy se minore di 30 e lo fai chiudere se minore di 70...
Ma caro mio 30<70 è sempre vero...

Io lo ripeto, se non capite neanche la matematica di base come dovete mai programmare una teoria di gestione dei risparmi...bho!!
Una fenice risorge dalla cenere torna al fuoco per quanto tu la possa uccidere.

Seguici su facebook
https://www.facebook.com/eamt4forex/?mo ... _todo_tour
Seguici su Telegram
FeniceTradingSystem
Rent mt4 ea
https://t.me/fenicetradingsystem

Aedo17
Messaggi: 8
Iscritto il: 02/03/2019, 18:31

Re: Aiuto creazione EA

Messaggio da Aedo17 » 13/03/2019, 18:50

Siccome non conosco praticamente nulla di linguaggio informatico, l'ho creato utilizzando il sito web 'forex advisor'. Ho visto un tutorial in internet dove sembrava tutto semplice, ho seguito i passi ma non è uscito quello che volevo. Ma essendo ignorante in materia informatica, leggendo lo script non capisco quali siano gli errori

FoxTrade
Messaggi: 86
Iscritto il: 23/10/2015, 12:22
Località: Genova

Re: Aiuto creazione EA

Messaggio da FoxTrade » 13/03/2019, 21:32

In effetti ad una analisi attenta il link del sito è presente negli OrderSend :D
Gli EA builder possono essere utilizzati e possono anche essere comodi, ma ci sono due grossi problemi
- sviluppare software in genere richiede una certa forma mentale ed esperienza. Ad esempio i Bug sono all' ordine del giorno anche per un buon programmatore, e saperli trovare non è affatto semplice; oppure, concetti semplici come "compra quando RSI è sopra quota X" può non essere così banale da "codificare"
- anche sapendo utilizzare gli EA Builder ci sono comunque delle limitazioni nelle strategie che si possono sviluppare ( soprattutto per i builder gratuiti )
:arrow: Hai un' idea per un Expert Advisor ma non sai programmare?
Lasciami un messaggio in privato o una mail, sviluppo EA e indicatori per Metatrader 4.

Email
marcomarco85@hotmail.it
Skype:
Marcofox51

Aedo17
Messaggi: 8
Iscritto il: 02/03/2019, 18:31

Re: Aiuto creazione EA

Messaggio da Aedo17 » 14/03/2019, 1:02

Capito.. A me era sorto il dubbio che fosse un problema del builder (in quanto gratuito, pensavo fosse limitato), ma non intendenomene di informatica non avrei mai trovato risposta. Ho provato 'forex advisor' perché dicevano che nonostante fosse gratuito, per chi è alle prime armi può bastare per sperimentare e iniziare a capire i meccanismi. Voi che mi dite?

paranoiac
Messaggi: 3
Iscritto il: 12/03/2019, 15:18

Re: Aiuto creazione EA

Messaggio da paranoiac » 25/03/2019, 15:13

ti apre molti ordini in contemporanea perchè non c'è nessun controllo per evitare che lo faccia.
devi appoggiarti a una variabile tipo:

int order = 0;

if(order==0){

fai tutto quello che devi fare,
apri l'ordine,
order=1;

} quando chiudi l'ordine: order = 0;

Avatar utente
Dainesi
Messaggi: 401
Iscritto il: 12/05/2014, 12:10
Località: Castellanza (VA)

Re: Aiuto creazione EA

Messaggio da Dainesi » 23/04/2019, 11:15

Il sistema postato contiene errori tipici compiuti da un neofita tra i quali si evidenzia l'assenza di un controllo dell'esistente: se ho già un ordine aperto devo inibire l'apertura di un ordine simile, se non applico un controllo ad ogni tick il mio sistema aprirà un nuovo ordine sino all'esaurimento del margine necessario.

Chi c’è in linea

Visitano il forum: CC [Bot] e 0 ospiti