Como posso ter a certeza de que a posição com o ID dado foi encerrada?
A solução óbvia - quando o PositionSelectByTicket retorna falso, mas isto pode provavelmente acontecer numa situação em que as posições abertas não tiveram tempo de ser carregadas no terminal quando ligadas à conta de negociação?
Uma solução um pouco mais complicada - PositionSelectByTicket retorna falso e HistorySelectByPosition retorna verdadeiro. Neste caso, se o histórico para esta posição for carregado, então a lista de posições em aberto deve ser carregada.
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
Aguardar que o terminal se sincronize. Por exemplo, enquanto (HistorySelect).
Não sou especialista no funcionamento interno do terminal. Mas talvez seja gaoantado que quando o OnInit chega, a tabela de posições abertas (e possivelmente o histórico de negociação) já está carregada?
cepreu1: Isto é conhecido. Mas eu quero saber como colocar o par na aplicação ? Existe uma função para isto?
Facilmente.
Por exemplo, operações comerciais. VerCTrade trade class,Buy method:
bool Buy(
double volume, // объем позиции conststring symbol=NULL, // символ double price=0.0, // цена исполнения double sl=0.0, // цена Stop Loss double tp=0.0, // цена Take Profit conststring comment=""// комментарий
)
Destaquei o local onde se pode especificar o símbolo requerido.
Ou, por exemplo, receber dados sobre preços de abertura e fecho... -CopyRates:
intCopyRates(
string symbol_name, // имя символа ENUM_TIMEFRAMES timeframe, // период int start_pos, // откуда начнем int count, // сколько копируем MqlRates rates_array[] // массив, куда будут скопированы данные
);
Sim, está bem. Mas não especifiquei que queria designar um casal quando começasse, mas
sem abrir uma posição. E a Buy faz isto ao abrir uma posição,
eCopyRates dádados históricos de pares sem os atribuir.
Estás a ser florido, mas vou tentar adivinhar: precisas de um parâmetro de entrada com o nome do símbolo? Depois aqui está o código - especifica o símbolo desejado no parâmetro"InpSymbol". Este símbolo é verificado no OnInit() - se não existir tal símbolo, então o Expert Advisor será descarregado e aparecerá uma mensagem de erro no separador "Experts" do terminal (ou no separador "Journal" do Strategy Tester).
Se existir um símbolo especificado no parâmetro"InpSymbol", então a seguinte informação será exibida no gráfico
Nome simbólico
Preço de venda
Preço de licitação
Eis como funciona: iniciamos no EURUSD e especificamos o símbolo USDJPY nas definições. Portanto, funciona com o símbolo EURUSD, mas os dados (preços) provêm de USDJPY
Estás a ser um pouco florido, mas deixa-me adivinhar: precisas de um parâmetro de entrada com um nome simbólico? Depois aqui está o código - especifica o símbolo requerido no parâmetro"InpSymbol". Este símbolo é verificado no OnInit() - se não existir tal símbolo, então o Expert Advisor será descarregado e aparecerá uma mensagem de erro no separador "Experts" do terminal (ou no separador "Journal" do Strategy Tester).
Se existir um símbolo especificado no parâmetro"InpSymbol", então a seguinte informação será exibida no gráfico
Nome simbólico
Preço de venda
Preço de licitação
Eis como funciona: iniciamos no EURUSD e especificamos o símbolo USDJPY nas definições. Portanto, funciona com o símbolo EURUSD, mas a informação (preços) vem dos EUA
Vladimir Karputov:
Estás a ser florido, mas deixa-me adivinhar: precisas de um parâmetro de entrada com o nome do símbolo? Depois aqui está o código - especifica o símbolo requerido no parâmetro"InpSymbol". Este símbolo é verificado no OnInit() - se não existir tal símbolo, então o Expert Advisor será descarregado e aparecerá uma mensagem de erro no separador "Experts" do terminal (ou no separador "Journal" do Strategy Tester).
Se existir um símbolo especificado no parâmetro"InpSymbol", então a seguinte informação será exibida no gráfico
Nome simbólico
Preço de venda
Preço de licitação
Eis como funciona: iniciamos no EURUSD e especificamos o símbolo USDJPY nas definições. Assim, acontece que funciona com o símbolo EURUSD, mas recebe informação (preços) a partir do símbolo USDJPY
Sim, mas neste exemplo, o Expert Advisor funciona em EURUSD, mas a informação (preços) é obtida a partir do símbolo USDJPY.
Porquê complicar as coisas, quero dizer, se tomarmos este exemplo, então lançamos o Expert Advisor no EURUSD ( ou em qualquer outro
par cambial necessário) e é isso, observamos este par, e depois, se necessário, abrimos uma posição.
Estupidamente fez um guião para copiar dentro do computador.... Não copia!!!
Então, onde está a descrição do erro? Que sistema operativo? Que construção do MetaTrader 5?
Tem direitos de escrita para a pasta?
Acrescentado: parece que se não houver directório, tem de ser criado primeiro.
Ao copiar para directório existente - sem problemas. O MetaTrader 5 irá funcionar sem erros.
Como posso ter a certeza de que a posição com o ID dado foi encerrada?
A solução óbvia - quando o PositionSelectByTicket retorna falso, mas isto pode provavelmente acontecer numa situação em que as posições abertas não tiveram tempo de ser carregadas no terminal quando ligadas à conta de negociação?
Uma solução um pouco mais complicada - PositionSelectByTicket retorna falso e HistorySelectByPosition retorna verdadeiro. Neste caso, se o histórico para esta posição for carregado, então a lista de posições em aberto deve ser carregada.
Aguardar que o terminal se sincronize. Por exemplo, enquanto(HistorySelect).
Aguardar que o terminal se sincronize. Por exemplo, enquanto (HistorySelect).
Não sou especialista no funcionamento interno do terminal. Mas talvez seja gaoantado que quando o OnInit chega, a tabela de posições abertas (e possivelmente o histórico de negociação) já está carregada?
Não sou especialista no funcionamento interno do terminal.
Também longe de ser um perito. É que várias opções me vêm à mente para experimentar de uma só vez. E o que vai funcionar terá de ser experimentado.
A solução mais fácil: abrir um gráfico do instrumento financeiro desejado no MetaTrader e colocar o Expert Advisor sobre ele.
Isto é conhecido. Mas eu quero saber como colocar o par na aplicação ? Existe uma função para isto?
Facilmente.
Por exemplo, operações comerciais. VerCTrade trade class,Buy method:
Destaquei o local onde se pode especificar o símbolo requerido.
Ou, por exemplo, receber dados sobre preços de abertura e fecho... -CopyRates:
Facilmente.
Por exemplo, operações comerciais. VerCTrade trade class,Buy method:
Destaquei o local onde se pode especificar o símbolo requerido.
Ou, por exemplo, receber dados sobre preços de abertura e fecho... -CopyRates:
Sim, ok. Mas não especifiquei que quero atribuir um par no arranque, mas
sem abrir uma posição. E a Buy fá-lo abrindo uma posição,
eCopyRates dá osdados históricos do par sem os atribuir.
Sim, está bem. Mas não especifiquei que queria designar um casal quando começasse, mas
sem abrir uma posição. E a Buy faz isto ao abrir uma posição,
eCopyRates dádados históricos de pares sem os atribuir.
Estás a ser florido, mas vou tentar adivinhar: precisas de um parâmetro de entrada com o nome do símbolo? Depois aqui está o código - especifica o símbolo desejado no parâmetro"InpSymbol". Este símbolo é verificado no OnInit() - se não existir tal símbolo, então o Expert Advisor será descarregado e aparecerá uma mensagem de erro no separador "Experts" do terminal (ou no separador "Journal" do Strategy Tester).
Se existir um símbolo especificado no parâmetro"InpSymbol", então a seguinte informação será exibida no gráfico
Eis como funciona: iniciamos no EURUSD e especificamos o símbolo USDJPY nas definições. Portanto, funciona com o símbolo EURUSD, mas os dados (preços) provêm de USDJPY
Estás a ser um pouco florido, mas deixa-me adivinhar: precisas de um parâmetro de entrada com um nome simbólico? Depois aqui está o código - especifica o símbolo requerido no parâmetro"InpSymbol". Este símbolo é verificado no OnInit() - se não existir tal símbolo, então o Expert Advisor será descarregado e aparecerá uma mensagem de erro no separador "Experts" do terminal (ou no separador "Journal" do Strategy Tester).
Se existir um símbolo especificado no parâmetro"InpSymbol", então a seguinte informação será exibida no gráfico
Eis como funciona: iniciamos no EURUSD e especificamos o símbolo USDJPY nas definições. Portanto, funciona com o símbolo EURUSD, mas a informação (preços) vem dos EUA
Estás a ser florido, mas deixa-me adivinhar: precisas de um parâmetro de entrada com o nome do símbolo? Depois aqui está o código - especifica o símbolo requerido no parâmetro"InpSymbol". Este símbolo é verificado no OnInit() - se não existir tal símbolo, então o Expert Advisor será descarregado e aparecerá uma mensagem de erro no separador "Experts" do terminal (ou no separador "Journal" do Strategy Tester).
Se existir um símbolo especificado no parâmetro"InpSymbol", então a seguinte informação será exibida no gráfico
Eis como funciona: iniciamos no EURUSD e especificamos o símbolo USDJPY nas definições. Assim, acontece que funciona com o símbolo EURUSD, mas recebe informação (preços) a partir do símbolo USDJPY
Sim, mas neste exemplo, o Expert Advisor funciona em EURUSD, mas a informação (preços) é obtida a partir do símbolo USDJPY.
Porquê complicar as coisas, quero dizer, se tomarmos este exemplo, então lançamos o Expert Advisor no EURUSD ( ou em qualquer outro
par cambial necessário) e é isso, observamos este par, e depois, se necessário, abrimos uma posição.