![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Funzione DistMarketAndPos().
Ci siamo! Ecco che arrivano altre funzioni interessanti! Per esempio, restituisce la distanza in pip tra il mercato e la posizione più vicina. La selezione più accurata delle posizioni da controllare è impostata da parametri esterni:
La funzione DistMarketAndPos().
Ci siamo! Andiamo a funzioni più interessanti! Per esempio, restituisce la distanza, in punti, tra il mercato e la posizione più vicina. La selezione più accurata delle posizioni da controllare è impostata da parametri esterni:
Cerco di farlo funzionare avanti e indietro e di aprire ordini avanti e indietro. Ho un errore, aiutatemi a risolverlo.
extern int TakeProfit = 150;
extern double Lot = 0,01;
extern inttern MAGIC = 1234;
int start()
{
se (DistMarketAndPos()>150)
{
OrderSend(Symbol(),OP_BUY,Lot,Ask,3,0,Ask+TakeProfit*Point)
}
ritorno(0);
}
intMarketAndPos(stringa sy="", int op=OP_BUY, int mn=-1)
{
doppia d, p;
int i, k=OrdersTotal(), r=1000000;
if (sy=="" || sy=="0") sy=Symbol();
p=MarketInfo(sy, MODE_POINT);
if (p==0) if (StringFind(sy, "")<0) p=0,00001; altrimenti p=0,01;
per (i=0; i<k; i++)
{
se(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
se ((OrderSymbol()==sy) && (op<0 || OrderType()==op))
{
se (mn<0 || OrderMagicNumber()==mn)
{
se (OrderType()==OP_BUY)
{
d=MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())/p;
se (r>d) r=NormalizeDouble(d, 0);
}
se (OrderType()==OP_SELL)
{
d=MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))/p;
se (r>d) r=NormalizeDouble(d, 0);
}
}
}
}
}
//----------------------------------------------------------------------------------------------------------------------------------------------
se (DistMarketAndPos()>150)
{
OrderSend(Symbol(),OP_SELL,Lot,Ask,3,0,Ask-TakeProfit*Point);
}
ritorno(0);
{
intMarketAndPos(string sy="", int op=OP_SELL, int mn=-1) //questa linea dà 1 errore,
//se questa linea viene rimossa,
//compila, ma poi
//non metto op=OP_SELL,
//e senza di esso, l'Expert Advisor penserà,
//che l'ordine da cui volete calcolare
/la distanza è OP_BUY
if (sy=="" || sy=="0") sy=Symbol();
p=MarketInfo(sy, MODE_POINT);
if (p==0) if (StringFind(sy, "")<0) p=0,00001; altrimenti p=0,01;
per (i=0; i<k; i++)
{
se (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
se ((OrderSymbol()==sy) && (op<0 || OrderType()==op))
{
se (mn<0 || OrderMagicNumber()==mn)
{
se (OrderType()==OP_BUY)
{
d=MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())/p;
se (r>d) r=NormalizeDouble(d, 0);
}
se (OrderType()==OP_SELL)
{
d=MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))/p;
se (r>d) r=NormalizeDouble(d, 0);
}
}
}
}
}
ritorno(r);
ritorno(r);
}
}
//-------------------------------------------------------------------------------------------
GRAZIE
Stocercando di farlo funzionare avanti e indietro e di aprire ordini avanti e indietro con esso. Ho un bug che non riesco a eliminare, per favore aiutatemi a risolverlo.
GRAZIE
Dovresti provarlo:
E con le domande qui...
Funzione MovingInWL().
Qualcuno può spiegare perché si dovrebbero postare funzioni che non funzionano?
'LevelWLoss' - identificatore non dichiarato
'LevelProfit' - identificatore non dichiarato
'ModifyOrder' - funzione non definita
'LevelWLoss' - identificatore non dichiarato
'LevelProfit' - identificatore non dichiarato
'ModifyOrder' - funzione non definita
6 errore/i, 0 avviso/i
e questo all'interno della funzione stessa
Qualcuno può spiegare perché si dovrebbero postare funzioni che non funzionano?
'LevelWLoss' - identificatore non dichiarato
'LevelProfit' - identificatore non dichiarato
'ModifyOrder' - funzione non definita
'LevelWLoss' - identificatore non dichiarato
'LevelProfit' - identificatore non dichiarato
'ModifyOrder' - funzione non definita
6 errore/i, 0 avviso/i
e questo è dentro la funzione stessa
La funzione funziona, ma chiama la funzione ModifyOrder, che dovrebbe essere aggiunta al codice EA e anche aggiungere all'EA le variabili LevelWLoss e LevelProfit, qualcosa come questo
extern int LevelProfit = 1000;
extern int LevelWLoss = 50;
Grazie mille per questo thread del forum. Il più grande ringraziamento a lurii Tokman per le caratteristiche. Personalmente, sono quasi pronto a equipararlo a Stroustrup.
Grazie!
La funzione GetAmountLotFromOpenPos().
Questa funzione restituisce la somma dei lotti di posizioni aperte. Una selezione più accurata delle posizioni da prendere in considerazione è specificata da parametri esterni:
Non ritorna!!!
non importa come lo faccio, o zero o " funzione di gestione degli eventi non trovata 4.mq4 1 1
"
Grazie mille per questo thread del forum. Il più grande ringraziamento a lurii Tokman per le caratteristiche. Personalmente, sono quasi pronto a equipararlo a Stroustrup.
Grazie!