[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 613
Come posso controllare l'assenza di un ordine aperto o di un ordine pendente con un dato numero magico? Possiamo controllare la selezione di un ordine, ma come posso controllare l'assenza?
sllawa3: Come posso controllare l'assenza di un ordine aperto o di un ordine pendente con un dato numero magico? Possiamo controllare la presenza di un ordine selezionato, ma come posso controllare l'assenza di un ordine?
sllawa3: Come posso controllare l'assenza di un ordine aperto o di un ordine pendente con un dato numero magico? Possiamo controllare la presenza di un ordine selezionato, ma come posso controllare l'assenza di un ordine?
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 06.03.2008 |//| Описание : Возвращает флаг существования позиций |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//| ot - время открытия ( 0 - любое время открытия) |//+----------------------------------------------------------------------------+bool ExistPositions(string sy="", int op=-1, int mn=-1, datetime ot=0) {
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (ot<=OrderOpenTime()) return(True);
}
}
}
}
}
}
return(False);
}
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 12.03.2008 |//| Описание : Возвращает флаг существования ордеров. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любой ордер) |//| mn - MagicNumber (-1 - любой магик) |//| ot - время открытия ( 0 - любое время установки) |//+----------------------------------------------------------------------------+bool ExistOrders(string sy="", int op=-1, int mn=-1, datetime ot=0) {
int i, k=OrdersTotal(), ty;
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
ty=OrderType();
if (ty>1 && ty<6) {
if ((OrderSymbol()==sy || sy=="") && (op<0 || ty==op)) {
if (mn<0 || OrderMagicNumber()==mn) {
if (ot<=OrderOpenTime()) return(True);
}
}
}
}
}
return(False);
}
if (ExistPositions(СИМВОЛ, ОПЕРАЦИЯ, МАГИК, ВРЕМЯ ОТКРЫТИЯ)==false) {код, если нету позиции}
int ticket;
int start()
{
int prim=8;
while(ticket<prim)
{
ticket++;
}
Print(ticket);
return;
}
Quando si prova questo codice, il registro dà un risultato di "8" un numero infinito di volte. Potete dirmi come fare in modo che il risultato sia dato solo una volta. Grazie.
Quando si prova questo codice, il registro dà un risultato di "8" un numero infinito di volte. Potete dirmi come fare in modo che il risultato sia dato solo una volta. Grazie.
Il selettore trova un ordine se c'è un'apertura ma se non c'è un'apertura come posso trovarlo? il selettore mostrerà ancora l'ultima posizione chiusa esistente ...
int DS=0;
for(int i = 0; i < OrdersTotal(); i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) // если под такой позицией ордер не выбран идём на следующий круг
{ if(OrderSymbol() == Symbol())// если символ ордера не совпадает с символом инструмента идём на следующий круг
{ if(OrderMagicNumber() == MAGA) // если Magic ордера не совпадает с MAGA идём на следующий круг
{if(OrderType() == OP_BUY)DS++; // если дошли аж суда и тип бай то увеличиваем счётчик на 1
}
}
}
}
// если тут DS=0 значит открытых ордеров по текущему символу с заданным магиком типа бай нету
Come posso controllare l'assenza di un ordine aperto o di un ordine pendente con un dato numero magico? Possiamo controllare la presenza di un ordine selezionato, ma come posso controllare l'assenza di un ordine?
Se non c'è disponibilità, allora non c'è disponibilità :)))
Sì... se solo... il selettore conserva il valore di avere l'ultima posa...
- ottenere i numeri delle barre più esterne per il periodo in questione.
- usiamo le funzioni di ricerca dei massimi e dei minimi.
https://docs.mql4.com/ru/series/iLowest
https://docs.mql4.com/ru/series/iHighest
Giusto?
Come posso controllare l'assenza di un ordine aperto o di un ordine pendente con un dato numero magico? Possiamo controllare la presenza di un ordine selezionato, ma come posso controllare l'assenza di un ordine?
È lo stesso per gli ordini ...
Potete dirmi come fare in modo che il risultato sia dato solo una volta.
Grazie.
Potete dirmi come fare in modo che il risultato sia dato solo una volta.
Grazie.
Ho un problema... aiuto...
Il selettore trova un ordine se c'è un'apertura ma se non c'è un'apertura come posso trovarlo? il selettore mostrerà ancora l'ultima posizione chiusa esistente ...
Qual è il problema?