Se há muitos caracteres, então há muitos "abertos".
Obrigado, amigo. Como faço para uma transação por dia para rasgar o instrumento atual e desconsiderar outros instrumentos (a EA está em vários instrumentos)
sibiriyak73: Obrigado, amigo. Como fazer um comércio por dia para rasgar o símbolo atual e desconsiderar outros instrumentos (o conselheiro fica em vários símbolos)
- olhar no histórico da ordem por seu número mágico e símbolo, se a hora de abertura (ou fechamento?) a ordem corresponde à data atual, então saia OnTick()
- controlar a "nova barra" na TF D1
a primeira maneira - mais escrita, mas no testador, o MT4 funcionará muito rápido; a segunda maneira - 3 linhas de código, mas no testador "mastigará" o disco rígido e o tempo de teste será maior
Este código verifica o que já está no mercado e o que está na história no caso de já estar fechado hoje.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает флаг торгов сегодня. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+bool isTradeToDay(string sy="", int op=-1, int mn=-1) {
int i, k=OrdersHistoryTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (TimeDay (OrderOpenTime())==Day()
&& TimeMonth(OrderOpenTime())==Month()
&& TimeYear (OrderOpenTime())==Year()) return(True);
}
}
}
}
}
}
k=OrdersTotal();
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 (TimeDay (OrderOpenTime())==Day()
&& TimeMonth(OrderOpenTime())==Month()
&& TimeYear (OrderOpenTime())==Year()) return(True);
}
}
}
}
}
}
return(False);
}
O que você pode adivinhar a partir de um pedaço de código aqui?
Faça uma verificação, não mais que uma vez por dia.
Saudações. O problema é que se a EA vê uma negociação aberta na conta, ela não abre mais nenhuma negociação. É como "você tem negócios abertos em sua conta por que você quer que eu faça isso". Tenho que explicar-lhe que não se deve abrir mais de uma negociação nesta FERRAMENTA(EUR USD, por exemplo) porque esta EA está aberta em poucos símbolos. Eu acho que seria errado mostrar todo código (é um grande código com variáveis declaradas, etc.).
Onde está o erro?
Se há muitos caracteres, então há muitos "abertos".
Se há muitos caracteres, então há muitos "abertos".
Obrigado, amigo. Como fazer um comércio por dia para rasgar o símbolo atual e desconsiderar outros instrumentos (o conselheiro fica em vários símbolos)
- olhar no histórico da ordem por seu número mágico e símbolo, se a hora de abertura (ou fechamento?) a ordem corresponde à data atual, então saia OnTick()
- controlar a "nova barra" na TF D1
a primeira maneira - mais escrita, mas no testador, o MT4 funcionará muito rápido; a segunda maneira - 3 linhas de código, mas no testador "mastigará" o disco rígido e o tempo de teste será maior
(a EA está em vários instrumentos)
Ah, eu acho que entendo, se você tem um EA em pé em vários instrumentos, então você só precisa acrescentar um cheque de que a ordem pertence ao EA.
Ah, eu acho que entendo, se você tem uma EA em múltiplos instrumentos, então você só precisa acrescentar um cheque de que a ordem pertence à EA.
Este código abre um grande número de acordos. A idéia é correta, mas como implementá-la corretamente.
Este código abre um grande número de negócios. A idéia é correta, mas como implementá-la corretamente.
Você precisa disto
Função isTradeToDay().
Esta função retorna a bandeira comercial para hoje
O que você pode adivinhar a partir de um pedaço de código aqui?
Faça uma verificação, não mais que uma vez por dia.
Os caras ajudam no assessor precisam abrir um negócio por dia NA FERRAMENTA.
Você poderia tentar isto
Você poderia tentar isto.
Tudo escrito há muito tempo ... há muito tempo.
Este código verifica o que já está no mercado e o que está na história no caso de já estar fechado hoje.
O que você pode adivinhar a partir de um pedaço de código aqui?
Faça uma verificação, não mais que uma vez por dia.