Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
a tese: movimento=vida, repouso=morte. O que diz no diário de bordo? está no canto inferior direito duas abas
se eu tivesse um - eu o verificaria e consertaria ...
Fórum sobre Comércio, Sistemas Automatizados de Comércio e Testes de Estratégia
Perguntas de Iniciantes MQL4 MT4 MetaTrader 4
Ilya Prozumentov, 2017.06.11 13:53
Há um modelo de classe para trabalhar com uma matriz.Para esta classe de modelo, precisamos implementar a classificação, uma vez que a matriz pode armazenar tipos de dados complexos. Por exemplo:
ArrayList<PP*> *dde; // PP - класс
Posso escrever diferentes funções para tipos simples e complexos, mas o compilador não entende que as funções são rigidamente delimitadas por tipo de dados e continua jurando:
<' - uso ilegal da operação ArrayList.mqh
Por isso, decidi incorporar a interface:
Todas as partes da compilação da construção. Mas se você tentar declará-lo:
ArrayList<PP*> *dde; // PP - класс
então, ao compilar o arquivo, estes são os erros:QuickSorts' - modelo não compatível varQSort.mqh /*error 1*/
'=' - tipo mismatch ArrayList.mqh /*error 2*/
P.S.O que devo corrigir no código para eliminar este tipo de descasamento? Eu não entendo porque isso ocorreu em primeiro lugar.
<' - operação ilegal usar varQSort.mqh
também me assombra nesta construção. É precisamente deste erro que eu queria me livrar. Mas eu entendo este erro e não entendo estes dois.
Eu preciso, por exemplo, na segunda-feira, se eu precisar abrir 2 ou 3 negociações, a função compara o tempo e envia o tubo, mas eu tenho uma vez comparada até agora.
Porque ao pressionar o botão "download", 6 000 000 de cotações serão baixadas. Nem todos querem encher o disco rígido com dados de cotações, esperar muito tempo até que sejam baixadas, e então remover dados desnecessários da tabela de cotações.
Olá Querido ... Você pode me dizer por que o código de parada de rastreamento especificado para pedidos de COMPRA funciona corretamente ...
... ... mas o mesmo para pedidos de VENDA não define SL...
... A razão está provavelmente na condição(Ask+8*D*Point)<OrderStopLoss(), se o removermos, SL será ajustado, mas Trailing Stop funciona incorretamente sem a condição especificada ...
Para ordens decompra ,a condição(Bid-8*D*Point)>OrderStopLoss(), seOrderStopLoss()==0, é aceitacorretamente (ou seja, algum valor > 0) ...
... Masa condição(Ask+8*D*Point)<OrderStopLoss(),OrderStopLoss()==0 não écorreta (ou seja, algumvalor é< 0
) ...Por favor, informe como formular corretamente no código a condição requerida(Ask+8*D*Point)<OrderStopLoss()para o trabalho correto deTrailing Stop com ordens deVENDA.
Agradeço a todos vocês que responderam com antecedência
.Boa tarde: Há uma função onde o indicador lê o arquivo dehistórico do tick. Mas ele é lido apenas uma vez, quando o indicador é carregado ou atualizado. Como posso fazer com que seja lido sempre que aparece o primeiro tique da barra de zero?
void ProcessOldCandles(int limit, TickStruct &lastTick)
{
int hTicksFile = FileOpen(Symbol() + ".tks", FILE_BIN | FILE_READ | FILE_SHARE_READ | FILE_SHARE_WRITE);
if (hTicksFile < 1)
return;
TickStruct tick;
while (!IsStopped())
{
if (!IsReadTimeAndBidAskOfTick(hTicksFile, tick))
return;
if (tick.time >= Time[limit])
break;
}
lastTick = tick;
int barIndex = iBarShift(NULL, 0, tick.time);
while (barIndex >= 0)
{
if (!IsReadTimeAndBidAskOfTick(hTicksFile, tick))
return;
if (!IsTickBelongToBar(tick, barIndex))
barIndex = iBarShift(NULL, 0, tick.time);
ProcessOneTick(barIndex, tick, lastTick);
}
FileClose(hTicksFile);
Olá Querido ... Você pode me dizer por que este código de Trailing Stop para pedidos de COMPRA funciona corretamente ...
... ... mas o mesmo para pedidos de VENDA não define SL...
... A razão está provavelmente na condição(Ask+8*D*Point)<OrderStopLoss(), se o removermos, SL será ajustado, mas Trailing Stop funciona incorretamente sem a condição especificada ...
Para ordens decompra ,a condição(Bid-8*D*Point)>OrderStopLoss(), quandoOrderStopLoss()==0 é tomadacorretamente (ou seja, algum valor > 0) ...
... Masa condição(Ask+8*D*Point)<OrderStopLoss(), quandoOrderStopLoss()==0 não é consideradacorreta (ou seja, algum valor é< 0
) ...Por favor, informe como formular corretamente no código a condição requerida(Ask+8*D*Point)<OrderStopLoss()para o trabalho correto deTrailing Stop com ordens deVENDA.
Agradeço a todos vocês que responderam com antecedência
.Olá a todos ... algo de muito baixa atividade neste ramo do fórum ... o problema é resolvido desta forma ...
... É um pouco longo, mas funciona... Quem sabe como encurtá-lo, pode encurtá-lo, eu agradeceria... o resto de nós pode usá-la como ela é.
entrar na função
OrderCloseByTicket (542534564)
Encerrar pedido por bilhete com lote completo.
para que você não tenha que especificar lotes, preço, deslizamento.
semelhante a clicar em uma cruz na ordem no terminal.
entrar na função
OrderCloseByPos (0)
fechar o pedido por posição.
e então não haverá necessidade de prescrever essas construções incômodas.
Olá! Os dois números menos q e w são comparados incorretamente, quando são iguais, o se operador pensa que um é maior que o outro. Qual é o erro? Quando q = -0,0002 e w é também -0,0002, res12=falso, por quê?