[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 247
Tenho uma idéia de como fazer uma e a mesma EA trabalhar com feiticeiros diferentes. O problema é que quando há uma fechadura, o robô lidará separadamente com esta situação sem interferir com outras ordens. ou seja, temos uma posição aberta na Bay (mágica 001) o mercado foi contra nós e em vez de fechar o negócio, o negócio oposto se abre na Sell com a mágica 001 e o robô estará liquidando esta situação, mas para evitar esperar muito tempo para liquidar a situação quero abrir novamente a Bay mas já com a mágica (002) e se a tendência não for bem sucedida a fechadura com a mágica (002) se abrirá novamente Sell com (002), etc. Você pode dizer como fazer os negócios funcionarem da seguinte forma com diferentes pares mágicos?
pasha5282: Se eu tiver uma idéia de como fazer uma e a mesma EA trabalhar com feiticeiros diferentes, o robô deve lidar separadamente com esta situação quando ocorrer uma fechadura e não interferir com outras ordens. ou seja, temos uma posição aberta na Bay (mágica 001) o mercado foi contra nós e em vez de fechar o negócio, o negócio oposto se abre na Sell com a mágica 001 e o robô cuidará da situação e eu quero abrir novamente a Bay mas com a mágica (002) e se a tendência não for corrigida o oposto Sell com a mágica (002) se abrirá novamente e assim por diante. Algum conselho de como fazer negócios funcionar como uma camada com mágica diferente? Ou como implementá-la?
int MagicNumber=001;
//---if (OrdersTotal()>0) // проверяем, есть ли ордера
{ for (int i=OrdersTotal()-1; i>=0; i--) // перебор ордеров
{ if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) // выбирается ордер среди открытых и отложенных ордеров
{ if (OrderSymbol()!=Symbol()) continue; // проверяем - ордер по текущему символу?if (OrderMagicNumber()!=MagicNumber) continue; // проверяем - ордер с нужным магиком?//---if (OrderType()==OP_BUY) // если это открытая позиция на покупку, то ...
{ // ... какие-то действияreturn(0);
}
//---elseif (OrderType()==OP_SELL) // если это открытая позиция на продажу, то ...
{ // ... какие-то действияreturn(0);
}
} } }
Exemplo de um contador de ordens abertas e pendentes pelo símbolo e mágico requerido
string_Symbol="AUDUSD";
int MagicNumber=555;
//---int Opened_pos=0;
if (OrdersTotal()>0)
{ for (i=OrdersTotal()-1; i>=0; i--)
{ if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{ if (OrderSymbol()==_Symbol)
{ if (OrderMagicNumber()==MagicNumber)
Opened_pos++;
} } } }
Por alguma razão, o terminal apresentou uma falha durante os testes. Agora, quando se liga, começa a usar cerca de 150 mb de memória e fica pendurado. Ia reinstalar, mas movi todos os meus arquivos antes de fazê-lo. Quando abri as pastas, descobri que nem todos os arquivos que criei estavam lá. Onde estão os demais?
Por alguma razão, o terminal apresentou uma falha durante os testes. Agora, quando se liga, começa a usar cerca de 150 mb de memória e fica pendurado. Ia reinstalar, mas movi todos os meus arquivos antes de fazê-lo. Quando abri as pastas, descobri que nem todos os arquivos que criei estavam lá. Onde estão os outros?
sss2019, não há tempo para lidar com isso agora, desculpe.
Assim que eu chegar lá, eu vou consertar e editar o código no correio.
Pergunta. Como faço para obter um ponteiro para uma corda? A cadeia MQL4 é C++ lpsz, tanto quanto eu entendi. Mas como posso obter o endereço do próprio fio?
Não há como fazer isso na MQL4. Você pode passar o fio para a DLL e retornar o endereço como INT.
silhouette: Não, o quarto. É só que os arquivos do quarto, quando clicados, abrem até o quinto, por alguma razão
Abra o MetaEditor para 5, na janela esquerda "Navegador" -> em uma pasta clique com o botão direito do mouse -> "Abrir pasta" e lá entre as pastas tente pesquisar.
#import "StrAddress.dll"int GetStrAddress(string str);//на входе имя инициализированной строки, на выходе её адрес#import//объявляем:string s="something";
int address;
//пример использования:int start(){
address=GetStrAddress(s);
Print(" адрес s равен " s);
}
Para que outros não sofram da mesma forma, eu anexei todo o projeto zipado. Com fontes, para que outros pudessem ver que não se trata de um vírus. Não tive tempo de verificar o que é compilado no VC++ 6.0 e o que é lixo. StrAddress.dll está na pasta Debug.
Abra o MetaEditor para 5, na janela esquerda "Navegador" -> botão direito do mouse sobre uma pasta -> "Abrir pasta" e lá entre as pastas tente pesquisar.
Obrigado, mas nada do mt4 apareceu por lá. Usamos a busca e encontramos todos os arquivos no seguinte endereço:
C:Utentes\\Qwer\AppData\Local\VirtualStore\Arquivos de programa\MetaTrader 4\experts\incluir
Não tenho idéia de como eles chegaram lá, para ser honesto, pois já foram salvos adequadamente antes.
sss2019, não há tempo para lidar com isso agora, desculpe.
Errado. Correto, como mostrado acima.
Assim que eu chegar lá, eu vou consertar e editar o código no correio.
Pergunta. Como faço para obter um ponteiro para um fio? A cadeia MQL4 é C++ lpsz, tanto quanto eu entendi. Mas como obter o endereço do fio em si?
Se eu tiver uma idéia de como fazer uma e a mesma EA trabalhar com feiticeiros diferentes, o robô deve lidar separadamente com esta situação quando ocorrer uma fechadura e não interferir com outras ordens. ou seja, temos uma posição aberta na Bay (mágica 001) o mercado foi contra nós e em vez de fechar o negócio, o negócio oposto se abre na Sell com a mágica 001 e o robô cuidará da situação e eu quero abrir novamente a Bay mas com a mágica (002) e se a tendência não for corrigida o oposto Sell com a mágica (002) se abrirá novamente e assim por diante. Algum conselho de como fazer negócios funcionar como uma camada com mágica diferente? Ou como implementá-la?
Exemplo de um contador de ordens abertas e pendentes pelo símbolo e mágico requerido
Por alguma razão, o terminal apresentou uma falha durante os testes. Agora, quando se liga, começa a usar cerca de 150 mb de memória e fica pendurado. Ia reinstalar, mas movi todos os meus arquivos antes de fazê-lo. Quando abri as pastas, descobri que nem todos os arquivos que criei estavam lá. Onde estão os demais?
Por alguma razão, o terminal apresentou uma falha durante os testes. Agora, quando se liga, começa a usar cerca de 150 mb de memória e fica pendurado. Ia reinstalar, mas movi todos os meus arquivos antes de fazê-lo. Quando abri as pastas, descobri que nem todos os arquivos que criei estavam lá. Onde estão os outros?
sss2019, não há tempo para lidar com isso agora, desculpe.
Assim que eu chegar lá, eu vou consertar e editar o código no correio.
Pergunta. Como faço para obter um ponteiro para uma corda? A cadeia MQL4 é C++ lpsz, tanto quanto eu entendi. Mas como posso obter o endereço do próprio fio?
A imagem da tela esquerda é MQL5, não 4.
Não, o quarto. É só que os arquivos do quarto, quando clicados, abrem até o quinto, por alguma razão
Abra o MetaEditor para 5, na janela esquerda "Navegador" -> em uma pasta clique com o botão direito do mouse -> "Abrir pasta" e lá entre as pastas tente pesquisar.
Não há como fazer isso na MQL4. Você pode passar uma string para uma DLL e retornar o endereço como INT.
//MQL4
Para que outros não sofram da mesma forma, eu anexei todo o projeto zipado. Com fontes, para que outros pudessem ver que não se trata de um vírus. Não tive tempo de verificar o que é compilado no VC++ 6.0 e o que é lixo. StrAddress.dll está na pasta Debug.
Abra o MetaEditor para 5, na janela esquerda "Navegador" -> botão direito do mouse sobre uma pasta -> "Abrir pasta" e lá entre as pastas tente pesquisar.
Obrigado, mas nada do mt4 apareceu por lá. Usamos a busca e encontramos todos os arquivos no seguinte endereço:
C:Utentes\\Qwer\AppData\Local\VirtualStore\Arquivos de programa\MetaTrader 4\experts\incluir
Não tenho idéia de como eles chegaram lá, para ser honesto, pois já foram salvos adequadamente antes.