Ma dove inserisco questa parte di codice? Scusa se te lo chiedo perché sono ancora abbastanza nuovo nel campo della codifica e non riesco ancora a capire come funziona il ciclo For.
Ma dove inserisco questa parte di codice? Scusa se te lo chiedo perché sono ancora abbastanza nuovo nella codifica e non riesco ancora a capire come funziona il ciclo For.
Saluti
Ryan
Ryan
Qualcosa di simile a questo:
if (TimeDayOfYear(TimeCurrent())==TimeDayOfYear(GetLastClosedOrderTime()) // nessuna negoziazione
se (TimeDayOfYear(TimeCurrent())==TimeDayOfYear(GetLastClosedOrderTime()) // nessuna negoziazione
Ciao mladen, ho aggiunto il codice ma sembra che dia qualche forma di errore di variabile globale. Inoltre, ho notato che hai una variabile MagicNumber che non è definita, posso chiederti a cosa serve? L'ho aggiunta sotto int ma non sono sicuro di quale sia l'uso di questa variabile.
Consigliatemi. Grazie ancora per la vostra pazienza.
Ciao mladen, ho aggiunto il codice ma sembra che dia qualche forma di errore di variabile globale. Inoltre, ho notato che hai una variabile MagicNumber che non è definita, posso chiederti a cosa serve? L'ho aggiunta sotto int ma non sono sicuro di quale sia l'uso di questa variabile.
Consigliatemi. Grazie ancora per la vostra pazienza.
Ciao mladen, ho provato a spostare la funzione fuori dalla funzione Start, tuttavia, il mio EA sta ancora innescando più di 1 trade al giorno invece di limitarsi ad innescare solo 1 trade al giorno.
Ciao mladen, ho provato a spostare la funzione fuori dalla funzione Start, tuttavia, il mio EA sta ancora innescando più di 1 trade al giorno invece di limitarsi ad innescare solo 1 trade al giorno.
if (total < 1 && TimeDayOfYear(GetLastClosedOrderTime()) != TimeDayOfYear(TimeCurrent()));
E non dovrebbe più farlo
Ciao mladen, dopo aver inserito il codice, invece di innescare 1 trade al giorno, ha innescato più trade in una volta fino allo scoppio del conto. Potrebbe essere dovuto a qualche meccanismo di attivazione che causa questo?
Ciao mladen, ho questo codice particolare che chiuderà tutti i trade in sospeso che ho dopo che ho un trade in esecuzione. come faccio a impostare per cancellare solo il mio attuale commercio in sospeso esistente dopo che ho attivato un commercio invece di tutti i futuri trade in sospeso?
tkuan77: Ciao mladen, ho questo particolare codice che chiuderà tutti i trade pendenti che ho dopo che ho un trade in esecuzione. come faccio a impostare per cancellare solo il mio attuale trade pendente esistente dopo che ho attivato un trade invece di tutti i futuri trade pendenti?
Cosa significa "current pending trade" e cosa significa "future pending trade"?
Ciao mladen,
Current pending trade significa: una volta che una condizione è stata soddisfatta, l'ea imposterà 2 trade in sospeso (1 lungo e 1 corto). Quindi se diciamo che il trade lungo è stato attivato, l'ea cancellerà automaticamente il trade corto in sospeso.
Future pending trade significa: dopo che l'ea ha cancellato le precedenti operazioni in sospeso e diciamo che la condizione è soddisfatta di nuovo, l'ea per diritto dovrebbe impostare altre 2 operazioni in sospeso (1 lunga e 1 corta). tuttavia, se l'ea ha attualmente un'operazione in corso, l'ea cancellerà automaticamente qualsiasi ordine in sospeso che l'ea sta cercando di impostare.
Quello che sto cercando di fare è lasciare che il sistema cancelli solo l'attuale trade in sospeso dopo che un trade è stato attivato. apprezzo l'aiuto
tkuan77
Devi trovare l'ultima barra chiusa e vedere se il giorno dell'ultima barra chiusa è lo stesso del giorno corrente.
Puoi usare qualcosa come questa funzione per ottenere il tempo dell'ultimo ordine chiuso:
{
datetime CloseTime = 0;
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime)
CloseTime = OrderCloseTime();
}
return(CloseTime);
}
Ciao mladen,
Ma dove inserisco questa parte di codice? Scusa se te lo chiedo perché sono ancora abbastanza nuovo nel campo della codifica e non riesco ancora a capire come funziona il ciclo For.
Saluti
Ryan
Ciao mladen,
Ma dove inserisco questa parte di codice? Scusa se te lo chiedo perché sono ancora abbastanza nuovo nella codifica e non riesco ancora a capire come funziona il ciclo For.
Saluti
RyanRyan
Qualcosa di simile a questo:
if (TimeDayOfYear(TimeCurrent())==TimeDayOfYear(GetLastClosedOrderTime()) // nessuna negoziazione
Ryan
Qualcosa del genere:
se (TimeDayOfYear(TimeCurrent())==TimeDayOfYear(GetLastClosedOrderTime()) // nessuna negoziazione
Ciao mladen, ho aggiunto il codice ma sembra che dia qualche forma di errore di variabile globale. Inoltre, ho notato che hai una variabile MagicNumber che non è definita, posso chiederti a cosa serve? L'ho aggiunta sotto int ma non sono sicuro di quale sia l'uso di questa variabile.
Consigliatemi. Grazie ancora per la vostra pazienza.
//---- parametri di input
extern double TakeProfit = 1000.0;
extern double Lots = 0.1;
extern double StopLoss = 980.0;
extern int Entry_Hour_1st = 21;
//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'esperto |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| funzione di deinizializzazione esperto |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| funzione di avvio esperto |
//+------------------------------------------------------------------+
int start()
{
//+------------------------------------------------------------------+
//-- Commercio di innesco
//+------------------------------------------------------------------+
int biglietto, totale, MagicNumber;
doppio TP_Value, SL_Value;
datetime GetLastClosedOrderTime()
{
datetime CloseTime = 0;
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime)
CloseTime = OrderCloseTime();
}
return(CloseTime);
}
total = OrdersTotal(); // controlla il numero totale di operazioni attualmente aperte
if(totale < 1)
{
if (Hour()==Entry_Hour_1st && ((High[0] - High[1]) > 0,00100) && ((High[1] - Low[1]) > 0,00100) && TimeDayOfYear(TimeCurrent()) != TimeDayOfYear(GetLastClosedOrderTime())
{
se ((Close[1] - Open[1]) > 0,00100)
{
TP_Value = (Close[1] - Open[1]);
SL_Value = (Basso[1] - 0.0010);
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green);
return(0);
}
se ((Apertura[1] - Chiusura[1]) > 0,00100)
{
TP_Value = (Apertura[1] - Chiusura[1]);
SL_Value = (Low[1] - 0.0010);
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green);
return(0);
}
se ((Open[1] - Close[1]) <= 0,00100)
{
TP_Value = (Alto[1] - Basso[1]);
SL_Value = (Basso[1] - 0.0010);
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green);
return(0);
}
}
if (Hour()==Entry_Hour_1st && ((Low[1] - Low[0]) > 0,00100) && ((High[1] - Low[1]) > 0,00100) && TimeDayOfYear(TimeCurrent()) != TimeDayOfYear(GetLastClosedOrderTime())
{
se ((Close[1] - Open[1]) > 0,00100)
{
TP_Value = (Close[1] - Open[1]);
SL_Value = (High[1] + 0.0010);
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red);
return(0);
}
se ((Open[1] - Close[1]) > 0,00100)
{
TP_Value = (Apertura[1] - Chiusura[1]);
SL_Value = (High[1] + 0.0010);
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red);
return(0);
}
se ((Open[1] - Close[1]) <= 0,00100)
{
TP_Value = (Alto[1] - Basso[1]);
SL_Value = (High[1] + 0.0010);
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red);
return(0);
}
}
}
return(0);
}
//+------------------------------------------------------------------+
Ciao mladen, ho aggiunto il codice ma sembra che dia qualche forma di errore di variabile globale. Inoltre, ho notato che hai una variabile MagicNumber che non è definita, posso chiederti a cosa serve? L'ho aggiunta sotto int ma non sono sicuro di quale sia l'uso di questa variabile.
Consigliatemi. Grazie ancora per la vostra pazienza.
//---- parametri di input
extern double TakeProfit = 1000.0;
extern double Lots = 0.1;
extern double StopLoss = 980.0;
extern int Entry_Hour_1st = 21;
//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'esperto |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| funzione di deinizializzazione esperto |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| funzione di avvio esperto |
//+------------------------------------------------------------------+
int start()
{
//+------------------------------------------------------------------+
//-- Commercio di innesco
//+------------------------------------------------------------------+
int biglietto, totale, MagicNumber;
doppio TP_Value, SL_Value;
datetime GetLastClosedOrderTime()
{
datetime CloseTime = 0;
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime)
CloseTime = OrderCloseTime();
}
return(CloseTime);
}
total = OrdersTotal(); // controlla il numero totale di operazioni attualmente aperte
if(totale < 1)
{
if (Hour()==Entry_Hour_1st && ((High[0] - High[1]) > 0,00100) && ((High[1] - Low[1]) > 0,00100) && TimeDayOfYear(TimeCurrent()) != TimeDayOfYear(GetLastClosedOrderTime())
{
se ((Close[1] - Open[1]) > 0,00100)
{
TP_Value = (Close[1] - Open[1]);
SL_Value = (Basso[1] - 0.0010);
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green);
return(0);
}
se ((Apertura[1] - Chiusura[1]) > 0,00100)
{
TP_Value = (Apertura[1] - Chiusura[1]);
SL_Value = (Low[1] - 0.0010);
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green);
return(0);
}
se ((Open[1] - Close[1]) <= 0,00100)
{
TP_Value = (Alto[1] - Basso[1]);
SL_Value = (Basso[1] - 0.0010);
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green);
return(0);
}
}
if (Hour()==Entry_Hour_1st && ((Low[1] - Low[0]) > 0,00100) && ((High[1] - Low[1]) > 0,00100) && TimeDayOfYear(TimeCurrent()) != TimeDayOfYear(GetLastClosedOrderTime())
{
se ((Close[1] - Open[1]) > 0,00100)
{
TP_Value = (Close[1] - Open[1]);
SL_Value = (High[1] + 0.0010);
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red);
return(0);
}
se ((Open[1] - Close[1]) > 0,00100)
{
TP_Value = (Apertura[1] - Chiusura[1]);
SL_Value = (High[1] + 0.0010);
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red);
return(0);
}
se ((Open[1] - Close[1]) <= 0,00100)
{
TP_Value = (Alto[1] - Basso[1]);
SL_Value = (High[1] + 0.0010);
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red);
return(0);
}
}
}
return(0);
}
//+------------------------------------------------------------------+
Questa è una funzione
Spostatela fuori dal corpo della funzione start()
↵
Questa è una funzione
Spostarlo fuori dal corpo della funzione start()Ciao mladen, ho provato a spostare la funzione fuori dalla funzione Start, tuttavia, il mio EA sta ancora innescando più di 1 trade al giorno invece di limitarsi ad innescare solo 1 trade al giorno.
Apprezzo il chiarimento.
Saluti
//---- parametri di input
extern double TakeProfit = 1000.0;
extern double Lots = 0.1;
extern double StopLoss = 980.0;
extern int Entry_Hour_1st = 21;
//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'esperto |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| funzione di deinizializzazione esperto |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| funzione di inizio esperto |
//+------------------------------------------------------------------+
int MagicNumber;
datetime GetLastClosedOrderTime()
{
datetime CloseTime = 0;
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime)
CloseTime = OrderCloseTime();
}
return(CloseTime);
}
int start()
{
//+------------------------------------------------------------------+
//-- Scambio di trigger
//+------------------------------------------------------------------+
int biglietto, totale
doppio TP_Valore, SL_Valore;
total = OrdersTotal(); // controlla il numero totale di trade attualmente aperti
se(totale < 1)
{
if (Hour()==Entry_Hour_1st && ((High[0] - High[1]) > 0.00100) && ((High[1] - Low[1]) > 0.00100) && TimeDayOfYear(TimeCurrent()) != TimeDayOfYear(GetLastClosedOrderTime())
{
se ((Close[1] - Open[1]) > 0,00100)
{
TP_Value = (Close[1] - Open[1]); // valore del corpo lungo
SL_Value = (Low[1] - 0.0010); // sempre lo stesso per i long
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green);
return(0);
}
se ((Apertura[1] - Chiusura[1]) > 0,00100)
{
TP_Value = (Apertura[1] - Chiusura[1]); // valore del corpo short
SL_Value = (Low[1] - 0.0010); // sempre lo stesso per long
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green);
return(0);
}
se ((Open[1] - Close[1]) <= 0,00100)
{
TP_Value = (High[1] - Low[1]); // valore dell'intera candela incluso testa e coda
SL_Value = (Low[1] - 0.0010); // sempre lo stesso per long
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green);
return(0);
}
}
if (Hour()==Entry_Hour_1st && ((Low[1] - Low[0]) > 0,00100) && ((High[1] - Low[1]) > 0,00100) && TimeDayOfYear(TimeCurrent()) != TimeDayOfYear(GetLastClosedOrderTime())
{
se ((Close[1] - Open[1]) > 0,00100)
{
TP_Value = (Close[1] - Open[1]); // valore del corpo lungo
SL_Value = (High[1] + 0.0010); // sempre lo stesso per short
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red);
return(0);
}
se ((Open[1] - Close[1]) > 0,00100)
{
TP_Value = (Apertura[1] - Chiusura[1]); // valore del corpo short
SL_Value = (High[1] + 0.0010); // sempre lo stesso per lo short
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red);
return(0);
}
se ((Open[1] - Close[1]) <= 0,00100)
{
TP_Value = (High[1] - Low[1]); // valore dell'intera candela incluso testa e coda
SL_Value = (High[1] + 0.0010); // sempre lo stesso per lo short
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red);
return(0);
}
}
}
return(0);
}
//+------------------------------------------------------------------+
↵
Ciao mladen, ho provato a spostare la funzione fuori dalla funzione Start, tuttavia, il mio EA sta ancora innescando più di 1 trade al giorno invece di limitarsi ad innescare solo 1 trade al giorno.
Apprezzo l'illuminazione.
Saluti
//---- parametri di input
extern double TakeProfit = 1000.0;
extern double Lots = 0.1;
extern double StopLoss = 980.0;
extern int Entry_Hour_1st = 21;
//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'esperto |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| funzione di deinizializzazione esperto |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| funzione di avvio esperto |
//+------------------------------------------------------------------+
int MagicNumber;
datetime GetLastClosedOrderTime()
{
datetime CloseTime = 0;
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime)
CloseTime = OrderCloseTime();
}
return(CloseTime);
}
int start()
{
//+------------------------------------------------------------------+
//-- Scambio di trigger
//+------------------------------------------------------------------+
int biglietto, totale
doppio TP_Valore, SL_Valore;
total = OrdersTotal(); // controlla il numero totale di trade attualmente aperti
se(totale < 1)
{
if (Hour()==Entry_Hour_1st && ((High[0] - High[1]) > 0.00100) && ((High[1] - Low[1]) > 0.00100) && TimeDayOfYear(TimeCurrent()) != TimeDayOfYear(GetLastClosedOrderTime())
{
se ((Close[1] - Open[1]) > 0,00100)
{
TP_Value = (Close[1] - Open[1]); // valore del corpo lungo
SL_Value = (Low[1] - 0.0010); // sempre lo stesso per i long
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Val ue,Ask+TP_Value, "My EA",200,0,Green);
return(0);
}
se ((Apertura[1] - Chiusura[1]) > 0,00100)
{
TP_Value = (Apertura[1] - Chiusura[1]); // valore del corpo short
SL_Value = (Low[1] - 0.0010); // sempre lo stesso per long
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Val ue,Ask+TP_Value, "My EA",200,0,Green);
return(0);
}
se ((Open[1] - Close[1]) <= 0,00100)
{
TP_Value = (High[1] - Low[1]); // valore dell'intera candela incluso testa e coda
SL_Value = (Low[1] - 0.0010); // sempre lo stesso per long
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Val ue,Ask+TP_Value, "My EA",200,0,Green);
return(0);
}
}
if (Hour()==Entry_Hour_1st && ((Low[1] - Low[0]) > 0,00100) && ((High[1] - Low[1]) > 0,00100) && TimeDayOfYear(TimeCurrent()) != TimeDayOfYear(GetLastClosedOrderTime())
{
se ((Close[1] - Open[1]) > 0,00100)
{
TP_Value = (Close[1] - Open[1]); // valore del corpo lungo
SL_Value = (High[1] + 0.0010); // sempre lo stesso per short
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Va lue,Bid-TP_Value, "My EA",200,0,Red);
return(0);
}
se ((Open[1] - Close[1]) > 0,00100)
{
TP_Value = (Apertura[1] - Chiusura[1]); // valore del corpo short
SL_Value = (High[1] + 0.0010); // sempre lo stesso per lo short
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Va lue,Bid-TP_Value, "My EA",200,0,Red);
return(0);
}
se ((Open[1] - Close[1]) <= 0,00100)
{
TP_Value = (High[1] - Low[1]); // valore dell'intera candela incluso testa e coda
SL_Value = (High[1] + 0.0010); // sempre lo stesso per lo short
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Va lue,Bid-TP_Value, "My EA",200,0,Red);
return(0);
}
}
}
return(0);
}
//+------------------------------------------------------------------+
tkuan77
Sostituisci questo :
if(totale < 1)
con questo :
if (total < 1 && TimeDayOfYear(GetLastClosedOrderTime()) != TimeDayOfYear(TimeCurrent());
E non dovrebbe più farlo
tkuan77
Sostituisci questo :
if(totale < 1)
con questo :
if (total < 1 && TimeDayOfYear(GetLastClosedOrderTime()) != TimeDayOfYear(TimeCurrent()));
E non dovrebbe più farloCiao mladen, dopo aver inserito il codice, invece di innescare 1 trade al giorno, ha innescato più trade in una volta fino allo scoppio del conto. Potrebbe essere dovuto a qualche meccanismo di attivazione che causa questo?
Saluti
Ciao mladen, ho questo codice particolare che chiuderà tutti i trade in sospeso che ho dopo che ho un trade in esecuzione. come faccio a impostare per cancellare solo il mio attuale commercio in sospeso esistente dopo che ho attivato un commercio invece di tutti i futuri trade in sospeso?
grazie.....
int new_del()
{
int i,a;
int totale = OrdiniTotali();
stringa comentario,par;
for (i=totale-1; i >=0; i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderType()==OP_BUY || OrderType()==OP_SELL)
{
for (a=totale-1; a >=0; a--)
{
OrderSelect(a,SELECT_BY_POS,MODE_TRADES);
comentario=OrderComment();
par=StringSubstr(comentario,0,6);
if(OrderType()==OP_SELLSTOP)// && comentario==Symbol())
{
OrderDelete(OrderTicket());
Print("Eliminazione di SELL_STOP"," Ordertype:",OrderType());
return(1);
}
if(OrderType()==OP_BUYSTOP)// && par==Symbol())
{
OrderDelete(OrderTicket());
Print("Cancellare BUY_STOP"," Ordertype:",OrderType());
return(1);
}
}
}
}
}
Ciao mladen, ho questo particolare codice che chiuderà tutti i trade pendenti che ho dopo che ho un trade in esecuzione. come faccio a impostare per cancellare solo il mio attuale trade pendente esistente dopo che ho attivato un trade invece di tutti i futuri trade pendenti?
grazie.....
int new_del()
{
int i,a;
int totale = OrdiniTotali();
stringa comentario,par;
for (i=totale-1; i >=0; i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderType()==OP_BUY || OrderType()==OP_SELL)
{
for (a=totale-1; a >=0; a--)
{
OrderSelect(a,SELECT_BY_POS,MODE_TRADES);
comentario=OrderComment();
par=StringSubstr(comentario,0,6);
if(OrderType()==OP_SELLSTOP)// && comentario==Symbol())
{
OrderDelete(OrderTicket());
Print("Eliminazione di SELL_STOP"," Ordertype:",OrderType());
return(1);
}
if(OrderType()==OP_BUYSTOP)// && par==Symbol())
{
OrderDelete(OrderTicket());
Print("Cancellare BUY_STOP"," Ordertype:",OrderType());
return(1);
}
}
}
}
}tkuan77
Cosa significa "current pending trade" e cosa significa "future pending trade"?
tkuan77
Cosa significa "current pending trade" e cosa significa "future pending trade"?
Ciao mladen,
Current pending trade significa: una volta che una condizione è stata soddisfatta, l'ea imposterà 2 trade in sospeso (1 lungo e 1 corto). Quindi se diciamo che il trade lungo è stato attivato, l'ea cancellerà automaticamente il trade corto in sospeso.
Future pending trade significa: dopo che l'ea ha cancellato le precedenti operazioni in sospeso e diciamo che la condizione è soddisfatta di nuovo, l'ea per diritto dovrebbe impostare altre 2 operazioni in sospeso (1 lunga e 1 corta). tuttavia, se l'ea ha attualmente un'operazione in corso, l'ea cancellerà automaticamente qualsiasi ordine in sospeso che l'ea sta cercando di impostare.
Quello che sto cercando di fare è lasciare che il sistema cancelli solo l'attuale trade in sospeso dopo che un trade è stato attivato. apprezzo l'aiuto
saluti