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:
sy - Nome dello strumento. Se questo parametro è impostato, la funzione controllerà solo le posizioni dello strumento specificato. Il "" o NULL significa il simbolo corrente.
op - operazione commerciale, tipo di posizione. Valori validi: OP_BUY, OP_SELL o -1. Il valore predefinito -1 significa qualsiasi posizione.
mn - Identificatore di posizione (MagicNumber). Il valore predefinito di -1 significa qualsiasi MagicNumber.
satop:
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:
sy - Nome dello strumento. Se questo parametro è impostato, la funzione controllerà solo le posizioni dello strumento specificato. Il "" o NULL significa il simbolo corrente.
op - operazione commerciale, tipo di posizione. Valori validi: OP_BUY, OP_SELL o -1. Il valore predefinito -1 significa qualsiasi posizione.
mn - Identificatore di posizione (MagicNumber). Il valore predefinito -1 significa qualsiasi MagicNumber.
Cerco di farlo funzionare avanti e indietro e di aprire ordini avanti e indietro. Ho un errore, aiutatemi a risolverlo.
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.
externint TakeProfit = 150;
externdouble Lot = 0.01;
externint MAGIC=1234;
//=====================================================================int start()
{
if (DistMarketAndPos(NULL,OP_BUY)>150)
{
OrderSend(Symbol(),OP_BUY,Lot,Ask,3,0,Ask+TakeProfit*Point);
}
if (DistMarketAndPos(NULL,OP_SELL)>150)
{
OrderSend(Symbol(),OP_SELL,Lot,Ask,3,0,Ask-TakeProfit*Point);
}
return(0);
}
//======================================================================== //+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает расстояние в пунктах между рынком и ближайшей |//| позицей |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" или NULL - текущий символ) |//| op - торговая операция ( -1 - любая позиция) |//| mn - MagicNumber ( -1 - любой магик) |//+----------------------------------------------------------------------------+int DistMarketAndPos(string sy="", int op=-1, int mn=-1) {
double 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, "JPY")<0) p=0.0001; else p=0.01;
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if ((OrderSymbol()==sy) && (op<0 || OrderType()==op)) {
if (mn<0 || OrderMagicNumber()==mn) {
if (OrderType()==OP_BUY) {
d=MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())/p;
if (r>d) r=NormalizeDouble(d, 0);
}
if (OrderType()==OP_SELL) {
d=MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))/p;
if (r>d) r=NormalizeDouble(d, 0);
}
}
}
}
}
return(r);
}
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
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
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!
Questa funzione restituisce la somma dei lotti di posizioni aperte. Una selezione più accurata delle posizioni da prendere in considerazione è specificata da parametri esterni:
sy - Nome dello strumento di mercato. Se questo parametro è impostato, la funzione considererà solo le posizioni del simbolo specificato. Il valore predefinito "" significa qualsiasi strumento di mercato. NULL significa lo strumento corrente.
op - operazione commerciale, tipo di posizione. Valori validi: OP_BUY, OP_SELL o -1. Il valore predefinito -1 significa qualsiasi posizione.
mn - Identificatore di posizione, MagicNumber. Il valore predefinito -1 significa qualsiasi identificatore.
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!
Non dimenticate di ringraziare anche l'autore delle caratteristiche.
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!