[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 578

 
rigonich:

Veja se os sons são permitidos para a MT na bobina, e se há arquivos na pastaSound. Mas no mercado de bstrom, o sn funcionará como um despertador.


Não, embora eu seja um principiante, mas não cometo tais erros. :))

outros especialistas estão cantando como rouxinóis! no mesmo terminal!

 
Desead:

Maldição, esse é o meu problema. Pergunto-me como posso contorná-lo se só preciso apagar toda a grade quando descarrego o robô... Não consigo nem pensar em nada aqui :(

colocar a mesma condição antes de chamar deinit na mesma condição que você chama deinit.
 
lottamer:


Não, sou um principiante, mas não cometo esse tipo de erro. :))

os outros especialistas estão cantando como rouxinóis! no mesmo terminal!


E se for um script - você precisa ter permissão de comércio para Expert Advisors habilitado, e na janela, onde você o coloca, não deve haver outros scripts de trabalho ou Expert Advisors, além disso, "zing" se houver negócios abertos em qualquer instrumento.
 
rigonich:

Coloque um deinit antes de chamar o deinit pela mesma condição que você chama deinit.


Então, deinit é chamado quando eu removo um robô de um gráfico - não consigo rastrear esta condição de outra forma..... é provavelmente mais fácil escrever um roteiro separado que apague todos os robôs pendentes restantes, não há outra forma.

A propósito, outro pensamento sobre o assunto:

Acho que resolvi o problema da eliminação de ordens pendentes. Eu determino a quantidade de ordens "necessárias" (a serem removidas) em uma função separada, chamada esta função e depois, enquanto com uma condição (Total>0), então o ciclo de remoção para(int i=Total-1;i<=0l; i--), novamente calculando a quantidade deordens"necessárias", contador de tentativas de remoção com saída deenquanto quando o nível dado for alcançado. Desta forma, tudo é apagado.

um loop infinito pode ocorrer aqui caso uma das ordens desapareça após o momento da contagem por qualquer motivo.

 
rigonich:

E se for um roteiro - você precisa ter as permissões comerciais do Expert Advisor habilitadas.


este é um EA.

todas as permissões são obviamente habilitadas (há outras EAs - funcionam - NÃO ao mesmo tempo)

há um problema no código. algo está errado lá.....

 
Desead:

Obrigado pela resposta. Eu não preciso de todos eles, apenas bylimit e selllimit, e também os coloco apenas, o mágico também está presente em todos os lugares da mesma forma. Eu olhei o código dado por você, há tanta coisa, eu sentei para entendê-lo, em geral, se eu não conseguir resolver o problema sozinho, terei que desmontar seus scripts mais minuciosamente, não há outra maneira, ele não apaga e é isso (

O que eu estava pensando. Eu coloco a exclusão de todos os robôs pendentes em um único lugar - quando eu descarrego meu robô, ele será colocado em deinit. Talvez esta seção tenha algum tipo de limitação de tempo... Quando apenas algumas ordens são apagadas, tudo está bem, mas quando eu descarrego uma grade inteira, então que diabos acontece - cerca de dez ordens são sempre deixadas e não é uma opção para limpá-la manualmente.

Meu roteiro usa esta biblioteca. A função responsável pela eliminação das ordens nela contidas:

/*int fClose_AllOrders (double& fd_Pribul,         // Возвращаемый профит закрытых ордеров
                        int fi_Type = -1,          // тип закрываемых ордеров: -1 - все; -2 - рыночные; 7 - отложенные или OrderType()
                        int fi_NBars_Life = 0,     // минимальная "жизнь" ордера в барах на fi_Period: 0 - параметр не учитывается
                        int fi_Period = 0,         // Период
                        int fi_OrderProfit = 0)*/  // Идентификатор профитности ордера: > 0 - профитный; < 0 - лоссовый
                                     // Функция закрытия "своих" ордеров по признаку

Você precisa de algum conhecimento para arrancar a função da biblioteca, mas usar a biblioteca inteira é bastante aceitável para um novato.

 
rigonich:

Hurrah, parece que resolvi o problema da eliminação de pedidos. Calculei o número de ordens "necessárias" (a serem removidas) em uma função separada, chamada esta função, depois, enquanto com uma condição (Total>0), depois o ciclo de remoção para(int i=Total-1 ;i<=0l; i--), novamente, a função de contar as tentativas de remoção"necessárias", contador de tentativas de remoção com a saída deenquanto quando o nível especificado for alcançado. Desta forma, tudo é apagado.
Ao usar loops, você SEMPRE deve ter cuidado: coloque a contagem de iteração e a condição de saída quando a EA for proibida de negociar.
 
TarasBY:
Você deve SEMPRE ter cuidado ao usar loops: coloque um contador de iteração e uma condição de saída ao proibir a EA de negociar.


Obrigado pela dica. Eu havia esquecido a condição de saída quando nenhuma troca é permitida.
 
Desead:

Porra, esse é o meu problema. Pergunto-me como contorná-lo se eu só preciso apagar toda a grade quando descarrego o robô... Não consigo nem pensar em nada a ver com isso :(

Um roteiro pode ser carregado no deinit() através da biblioteca para ser mapeado:

 // 7.9. Функция загружает на указанный график скрипт по его имени.
 void ServiceLoadScript(int    hwndChart,    // Системный дескриптор окна графика, куда загружается скрипт.
                        string szNameScript, // Имя загружаемого скрипта.
                        int    bOK);         // Подтверждение запуска скрипта, при наличии диалогового окна свойств скрипта. Скрипт может не иметь окна свойств!
                                             // При использовании функции для загрузки скрипта из скрипта на текущем графике параметр не работает из-за
                                             // невозможности одновременной работы двух скриптов на одном графике.
                                             // TRUE - автонажатие на кнопку "OK" разрешено, FALSE - автонажатие на кнопку "OK" запрещено.

com a função excluir todos os pedidos.

P.S. Com algum ou outro custo e energia você pode resolver QUALQUER desejo exótico de um comerciante, mas se você precisa deste "exótico" às vezes ... :)))

 

eh...porque não foi possível escrever assim a condição para verificar as ordens abertas:

se EncomendasTotal() > 0

tudo é claro e compreensível... seria...

Há uma hora que estou tentando descobrir COMO escrever esta condição...