Scrivo EA gratis - Pagina 5
Space X, la nuova era dell’economia dello spazio ed Elon Musk aspirante dominatore del 21° secolo
SpaceX  di Elon Musk ci riprova questa questa sera per il secondo tentativo del lancio storico. Rimane l’incognita meteo che potrebbe far slittare ulteriormente il via all’era dei voli privati …
Multipli da bolla per Wall Street e azionario UE, il confronto con i precedenti grandi recuperi e i timori per giugno
E’ andato in archivio anche il mese di maggio sui mercati con Piazza Affari risalita ai livelli pre-lockdown, ossia si è riportata sui massimi dal 9 marzo. A ben vedere …
Investire nel green: l?emergenza coronavirus apre a prospettive migliori
Investire nel clima e nelle tecnologie green potrebbe avere prospettive interessanti, in grado di superare l’emergenza coronavirus grazie a basi più solide rispetto alla crisi finanziaria del 2008. Ne sono …
Tutti gli articoli
Tutti gli articoli Tutte le notizie

  1. #41
    L'avatar di ((nick35))
    Data Registrazione
    Jan 2011
    Messaggi
    1,722
    Mentioned
    0 Post(s)
    Quoted
    57 Post(s)
    Potenza rep
    42949682
    Citazione Originariamente Scritto da pattinatore Visualizza Messaggio
    ciao, apprezzo molto la disponibilità! mi servirebbe un'aggiunta a questo expert che ho fatto io scopiazzando qua e là, attualmente se i trades son in positivo di almeno un numero predefinito di pips sposta lo stop in pari. vorrei che chiudesse tutte le posizioni qualora il guadagno (parliamo di floating non di beginning equity+x )raggiunga x euro, puoi aiutarmi?

    extern double e_BreakEvenStop = 15;
    double g_Point = 0.0001;
    int init() {
    if (Point == 0.00001) g_Point = 0.0001;
    else {
    if (Point == 0.001) g_Point = 0.01;
    else g_Point = Point;
    }
    return (0);
    }
    //+------------------------------------------------------------------+
    //| script program start function |
    //+------------------------------------------------------------------+
    int start()
    {
    //----
    string curr = Symbol();
    int ot = OrdersTotal();
    int ords[200], ordType[200], ordTicket[200]; double ordLots[200];
    string ordComments[200];
    int ix=0;
    for (int i=0; i<ot; i++)
    {
    int o = OrderSelect(i, SELECT_BY_POS);
    if (OrderSymbol() == Symbol())
    if ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))
    {
    double sl = 0;
    if ((OrderType() == OP_BUY) && (Bid - OrderOpenPrice()) > (e_BreakEvenStop * g_Point))
    sl = OrderOpenPrice() ;
    if ((OrderType() == OP_SELL) && (OrderOpenPrice() - Ask) > (e_BreakEvenStop * g_Point))
    sl = OrderOpenPrice() ;

    if (sl != 0)
    OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0);
    }
    }
    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    in casi anaoghi uso un ea come questo su altro chart:



    extern double My_Money_Profit_Target=300; //The amount of money profit at which you want to close ALL open trades.

    int Slippage=5;
    int i;

    //+------------------------------------------------------------------+
    //| expert initialization function |
    //+------------------------------------------------------------------+
    int init()
    {
    //----

    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| expert deinitialization function |
    //+------------------------------------------------------------------+
    int deinit()
    {
    //----

    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| expert start function |
    //+------------------------------------------------------------------+


    int start()
    {
    if (AccountProfit()>= My_Money_Profit_Target)
    {
    for(i=OrdersTotal()-1;i>=0;i--)
    {
    OrderSelect(i, SELECT_BY_POS);
    int type = OrderType();

    bool result = false;

    switch(type)
    {
    //Close opened long positions
    case OP_BUY : result = OrderClose(OrderTicket(),OrderLots(),Mar ketInfo(OrderSymbol(),MODE_BID),Slippage ,Pink);
    break;

    //Close opened short positions
    case OP_SELL : result = OrderClose(OrderTicket(),OrderLots(),Mar ketInfo(OrderSymbol(),MODE_ASK),Slippage ,Pink);

    }

    if(result == false)
    {
    Sleep(3000);
    }
    }
    Print ("Account Profit Reached. All Open Trades Have Been Closed");
    return(0);
    }

    Comment("Balance: ",AccountBalance(),", Account Equity: ",AccountEquity(),", Account Profit: ",AccountProfit(),
    "\nMy Account Profit Target: ",My_Money_Profit_Target);

    return(0);
    }

  2. #42

    Data Registrazione
    Aug 2011
    Messaggi
    19
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)
    Potenza rep
    0
    Citazione Originariamente Scritto da pattinatore Visualizza Messaggio
    ciao, apprezzo molto la disponibilità! mi servirebbe un'aggiunta a questo expert che ho fatto io scopiazzando qua e là, attualmente se i trades son in positivo di almeno un numero predefinito di pips sposta lo stop in pari. vorrei che chiudesse tutte le posizioni qualora il guadagno (parliamo di floating non di beginning equity+x )raggiunga x euro, puoi aiutarmi?

    extern double e_BreakEvenStop = 15;
    double g_Point = 0.0001;
    int init() {
    if (Point == 0.00001) g_Point = 0.0001;
    else {
    if (Point == 0.001) g_Point = 0.01;
    else g_Point = Point;
    }
    return (0);
    }
    //+------------------------------------------------------------------+
    //| script program start function |
    //+------------------------------------------------------------------+
    int start()
    {
    //----
    string curr = Symbol();
    int ot = OrdersTotal();
    int ords[200], ordType[200], ordTicket[200]; double ordLots[200];
    string ordComments[200];
    int ix=0;
    for (int i=0; i<ot; i++)
    {
    int o = OrderSelect(i, SELECT_BY_POS);
    if (OrderSymbol() == Symbol())
    if ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))
    {
    double sl = 0;
    if ((OrderType() == OP_BUY) && (Bid - OrderOpenPrice()) > (e_BreakEvenStop * g_Point))
    sl = OrderOpenPrice() ;
    if ((OrderType() == OP_SELL) && (OrderOpenPrice() - Ask) > (e_BreakEvenStop * g_Point))
    sl = OrderOpenPrice() ;

    if (sl != 0)
    OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0);
    }
    }
    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    extern double e_BreakEvenStop = 15;
    extern double profitto = 1000;
    double g_Point = 0.0001;
    int init() {
    if (Point == 0.00001) g_Point = 0.0001;
    else {
    if (Point == 0.001) g_Point = 0.01;
    else g_Point = Point;
    }
    return (0);
    }
    //+------------------------------------------------------------------+
    //| script program start function |
    //+------------------------------------------------------------------+
    int start()
    {
    //----
    string curr = Symbol();
    int ot = OrdersTotal();
    int ords[200], ordType[200], ordTicket[200]; double ordLots[200];
    string ordComments[200];
    int ix=0;
    for (int i=0; i<ot; i++)
    {
    int o = OrderSelect(i, SELECT_BY_POS);
    if (OrderSymbol() == Symbol())
    if ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))
    {
    double sl = 0;
    if ((OrderType() == OP_BUY) && (Bid - OrderOpenPrice()) > (e_BreakEvenStop * g_Point))
    sl = OrderOpenPrice() ;
    if ((OrderType() == OP_SELL) && (OrderOpenPrice() - Ask) > (e_BreakEvenStop * g_Point))
    sl = OrderOpenPrice() ;

    if (sl != 0)
    OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0);
    }
    }
    if(AccountProfit() >= profitto)
    {
    while(OrdersTotal() > 0)
    {
    for(i = 0; i < OrdersTotal(); i++)
    {
    if(OrderType() == OP_BUY)
    {
    OrderClose(OrderTicket(), OrderLots(), Bid, 3);
    }
    else if(OrderType() == OP_SELL)
    {
    OrderClose(OrderTicket(), OrderLots(), Ask, 3);
    }
    }

    }
    }

    //----
    return(0);
    }
    //+------------------------------------------------------------------+


    Ciao, Pattinatore.

    In blu la parte di codice che ho aggiunto io affinché l'EA faccia quello che desideri

    ho impostato il valore cui chiudere tutto a 1000 (te lo auguro); ovviamente, essendo una variabile esterna, lo puoi editare come meglio credi.

    N.B: Raggiunto il profitto che desideri, l'EA chiude tutti gli ordini, indipendentemente dal fatto se siano stati inseriti dall'EA o meno.
    Perché vengano chiusi solo gli ordini aperti da questo stesso EA, sarebbe utile impostare il Magic Number, ma vedo che questo codice non gestisce l'invio di ordini.

    Ciao

  3. #43
    L'avatar di pattinatore
    Data Registrazione
    Mar 2009
    Messaggi
    5,277
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)
    Potenza rep
    42949684
    Citazione Originariamente Scritto da ((nick35)) Visualizza Messaggio
    in casi anaoghi uso un ea come questo su altro chart:



    extern double My_Money_Profit_Target=300; //The amount of money profit at which you want to close ALL open trades.

    int Slippage=5;
    int i;

    //+------------------------------------------------------------------+
    //| expert initialization function |
    //+------------------------------------------------------------------+
    int init()
    {
    //----

    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| expert deinitialization function |
    //+------------------------------------------------------------------+
    int deinit()
    {
    //----

    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| expert start function |
    //+------------------------------------------------------------------+


    int start()
    {
    if (AccountProfit()>= My_Money_Profit_Target)
    {
    for(i=OrdersTotal()-1;i>=0;i--)
    {
    OrderSelect(i, SELECT_BY_POS);
    int type = OrderType();

    bool result = false;

    switch(type)
    {
    //Close opened long positions
    case OP_BUY : result = OrderClose(OrderTicket(),OrderLots(),Mar ketInfo(OrderSymbol(),MODE_BID),Slippage ,Pink);
    break;

    //Close opened short positions
    case OP_SELL : result = OrderClose(OrderTicket(),OrderLots(),Mar ketInfo(OrderSymbol(),MODE_ASK),Slippage ,Pink);

    }

    if(result == false)
    {
    Sleep(3000);
    }
    }
    Print ("Account Profit Reached. All Open Trades Have Been Closed");
    return(0);
    }

    Comment("Balance: ",AccountBalance(),", Account Equity: ",AccountEquity(),", Account Profit: ",AccountProfit(),
    "\nMy Account Profit Target: ",My_Money_Profit_Target);

    return(0);
    }
    Citazione Originariamente Scritto da syson Visualizza Messaggio
    extern double e_BreakEvenStop = 15;
    extern double profitto = 1000;
    double g_Point = 0.0001;
    int init() {
    if (Point == 0.00001) g_Point = 0.0001;
    else {
    if (Point == 0.001) g_Point = 0.01;
    else g_Point = Point;
    }
    return (0);
    }
    //+------------------------------------------------------------------+
    //| script program start function |
    //+------------------------------------------------------------------+
    int start()
    {
    //----
    string curr = Symbol();
    int ot = OrdersTotal();
    int ords[200], ordType[200], ordTicket[200]; double ordLots[200];
    string ordComments[200];
    int ix=0;
    for (int i=0; i<ot; i++)
    {
    int o = OrderSelect(i, SELECT_BY_POS);
    if (OrderSymbol() == Symbol())
    if ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))
    {
    double sl = 0;
    if ((OrderType() == OP_BUY) && (Bid - OrderOpenPrice()) > (e_BreakEvenStop * g_Point))
    sl = OrderOpenPrice() ;
    if ((OrderType() == OP_SELL) && (OrderOpenPrice() - Ask) > (e_BreakEvenStop * g_Point))
    sl = OrderOpenPrice() ;

    if (sl != 0)
    OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0);
    }
    }
    if(AccountProfit() >= profitto)
    {
    while(OrdersTotal() > 0)
    {
    for(i = 0; i < OrdersTotal(); i++)
    {
    if(OrderType() == OP_BUY)
    {
    OrderClose(OrderTicket(), OrderLots(), Bid, 3);
    }
    else if(OrderType() == OP_SELL)
    {
    OrderClose(OrderTicket(), OrderLots(), Ask, 3);
    }
    }

    }
    }

    //----
    return(0);
    }
    //+------------------------------------------------------------------+


    Ciao, Pattinatore.

    In blu la parte di codice che ho aggiunto io affinché l'EA faccia quello che desideri

    ho impostato il valore cui chiudere tutto a 1000 (te lo auguro); ovviamente, essendo una variabile esterna, lo puoi editare come meglio credi.

    N.B: Raggiunto il profitto che desideri, l'EA chiude tutti gli ordini, indipendentemente dal fatto se siano stati inseriti dall'EA o meno.
    Perché vengano chiusi solo gli ordini aperti da questo stesso EA, sarebbe utile impostare il Magic Number, ma vedo che questo codice non gestisce l'invio di ordini.

    Ciao
    grazie 1000 ad entrambi! lo sto testando ora
    veramente una gran iniziativa.

  4. #44
    L'avatar di pattinatore
    Data Registrazione
    Mar 2009
    Messaggi
    5,277
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)
    Potenza rep
    42949684
    Citazione Originariamente Scritto da pattinatore Visualizza Messaggio
    grazie 1000 ad entrambi! lo sto testando ora
    veramente una gran iniziativa.
    purtroppo non sembra funzionare e lo sto usando in real... lo stop in pari funge semrpe ma nonostante avessi impostato 410 di gain (e poi ben chiuso manualmente le posizioni a 460 )non ha chiuso le posizioni... fa differenza su che time frame lo utilizzo? questo il codice usato.. ovviamente il profitto è in euro giusto?

    quell'account profit non è che sia equity meno beginning equity che contndo i loss nel mezzo non fa il floating attuale?


    extern double e_BreakEvenStop = 15;
    extern double profitto = 1000;
    double g_Point = 0.0001;
    int init() {
    if (Point == 0.00001) g_Point = 0.0001;
    else {
    if (Point == 0.001) g_Point = 0.01;
    else g_Point = Point;
    }
    return (0);
    }
    //+------------------------------------------------------------------+
    //| script program start function |
    //+------------------------------------------------------------------+
    int start()
    {
    //----
    string curr = Symbol();
    int ot = OrdersTotal();
    int ords[200], ordType[200], ordTicket[200]; double ordLots[200];
    string ordComments[200];
    int ix=0;
    for (int i=0; i<ot; i++)
    {
    int o = OrderSelect(i, SELECT_BY_POS);
    if (OrderSymbol() == Symbol())
    if ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))
    {
    double sl = 0;
    if ((OrderType() == OP_BUY) && (Bid - OrderOpenPrice()) > (e_BreakEvenStop * g_Point))
    sl = OrderOpenPrice() ;
    if ((OrderType() == OP_SELL) && (OrderOpenPrice() - Ask) > (e_BreakEvenStop * g_Point))
    sl = OrderOpenPrice() ;

    if (sl != 0)
    OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0);
    }
    }
    if(AccountProfit() >= profitto)
    {
    while(OrdersTotal() > 0)
    {
    for(i = 0; i < OrdersTotal(); i++)
    {
    if(OrderType() == OP_BUY)
    {
    OrderClose(OrderTicket(), OrderLots(), Bid, 3);
    }
    else if(OrderType() == OP_SELL)
    {
    OrderClose(OrderTicket(), OrderLots(), Ask, 3);
    }
    }

    }
    }

    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    Ultima modifica di pattinatore; 14-09-11 alle 13:25

  5. #45

    Data Registrazione
    Aug 2011
    Messaggi
    19
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)
    Potenza rep
    0
    Citazione Originariamente Scritto da pattinatore Visualizza Messaggio
    purtroppo non sembra funzionare e lo sto usando in real... lo stop in pari funge semrpe ma nonostante avessi impostato 410 di gain (e poi ben chiuso manualmente le posizioni a 460 )non ha chiuso le posizioni... fa differenza su che time frame lo utilizzo? questo il codice usato.. ovviamente il profitto è in euro giusto?

    quell'account profit non è che sia equity meno beginning equity che contndo i loss nel mezzo non fa il floating attuale?
    Non fa differenza su che time frame lo utilizzi, ma chiude solo gli ordini relativi al cross su cui sta girando
    ad esempio, se lo hai piazzato su EURUSD ma hai ordini su USDJPY.questi ultimi non verranno chiusi

  6. #46
    L'avatar di tetsuo
    Data Registrazione
    Mar 2008
    Messaggi
    990
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)
    Potenza rep
    42949685
    Citazione Originariamente Scritto da pattinatore Visualizza Messaggio
    purtroppo non sembra funzionare e lo sto usando in real... lo stop in pari funge semrpe ma nonostante avessi impostato 410 di gain (e poi ben chiuso manualmente le posizioni a 460 )non ha chiuso le posizioni... fa differenza su che time frame lo utilizzo? questo il codice usato.. ovviamente il profitto è in euro giusto?

    quell'account profit non è che sia equity meno beginning equity che contndo i loss nel mezzo non fa il floating attuale?
    Ciao patti


    Quella funzione restituisce il profitto in valuta corrente complessivo dei trade attualmente aperti sul quell'account

    Comunque quello che hai postato e che continuate a chiamare EA è uno script mentre è un EA quello postato da nick35.


  7. #47

    Data Registrazione
    Aug 2011
    Messaggi
    19
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)
    Potenza rep
    0
    Citazione Originariamente Scritto da tetsuo Visualizza Messaggio
    Ciao patti


    Quella funzione restituisce il profitto in valuta corrente complessivo dei trade attualmente aperti sul quell'account
    Sì, ed è ciò che interessa a Pattinatore (o ho capito male? )
    Citazione Originariamente Scritto da tetsuo Visualizza Messaggio
    Comunque quello che hai postato e che continuate a chiamare EA è uno script mentre è un EA quello postato da nick35.
    Beh sì... può sempre farlo diventare un EA, anzi... deve!

    Ciao

  8. #48
    L'avatar di tetsuo
    Data Registrazione
    Mar 2008
    Messaggi
    990
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)
    Potenza rep
    42949685
    Citazione Originariamente Scritto da syson Visualizza Messaggio
    Beh sì... può sempre farlo diventare un EA, anzi... deve!
    ops

    Ho imparato una cosina in più (non mi ero mai messo lì a controllare )
    effettivamente pensavo che era la struttura del codice che faceva la differenza tra EA, script ed indi invece a quanto pare è solo una questione di cartelle

    Sorry e grazie

  9. #49
    L'avatar di pattinatore
    Data Registrazione
    Mar 2009
    Messaggi
    5,277
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)
    Potenza rep
    42949684
    Citazione Originariamente Scritto da syson Visualizza Messaggio
    Sì, ed è ciò che interessa a Pattinatore (o ho capito male? )


    Beh sì... può sempre farlo diventare un EA, anzi... deve!

    Ciao
    sisi a me serve un EA in qual caso la parte riguardante la chiusura dell'ordine, a me non funzia... non so come mai..

  10. #50

    Data Registrazione
    Aug 2011
    Messaggi
    19
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)
    Potenza rep
    0
    Citazione Originariamente Scritto da pattinatore Visualizza Messaggio
    sisi a me serve un EA in qual caso la parte riguardante la chiusura dell'ordine, a me non funzia... non so come mai..
    Estrai il file nella cartella experts, aprilo, compilalo, hai finito.

    Ciao
    File Allegati File Allegati

Accedi