Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 68
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
É sem dimensões como está, mas é bidimensional, e você pode colocar um número de elementos sem dimensões em duas dimensões.
O que você está fazendo de qualquer forma, você tem alguma idéia de qual deve ser o resultado do trabalho que você faz? Ou você está inventando a lógica à medida que avança?
No exemplo atual, quero poder colocar um número infinito de pedidos com qualquer lote, a fim de evitar exceder os limites especificados.
Claro, conhecemos os limites, mas eu gostaria de fazer isso dessa maneira.
Procedo do fato de que se você especificar um elemento entre parênteses, ele será o último
Então eu tenho esse tipo de porcaria. Estava esperando uma ordem por ordem... lote? quero que o resultado (lote de um pedido *coeficiente) seja adicionado ao pedido em vez do lote
e a questão da recuperação de dados de lá
Quero obter o seguinte resultado, a meu ver
MyArray[0][0.01][0.01
MyArray[1][0.01]
MyArray[2][0.02]
etc....
void CalcOrders()
{
int CountOrders=0;
double MyArray [99][99];
for(i=OrdersTotal()-1; i>=0; i--)
{
if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
&& (OrderMagicNumber()==Magic) && (OrderType()==OP_SELL))
CountOrders++;
ArrayResize(MyArray,CountOrders+1);
MyArray[CountOrders][0]=OrderLots();
Print("MyArray[CountOrders][0]",MyArray[CountOrders][0]);
}
}
2017.01.13 12:51:14.372 2017.01.05 16:30:00 martin GBPUSD,M5: MyArray[CountOrders][0]0.02
2017.01.13 12:51:14.372 2017.01.05 16:25:00 martin GBPUSD,M5: MyArray[CountOrders][0]0.01
2017.01.13 12:51:14.372 2017.01.05 16:25:00 martin GBPUSD,M5: MyArray[CountOrders][0]0.02
2017.01.13 12:51:14.371 2017.01.05 16:20:00 martin GBPUSD,M5: MyArray[CountOrders][0]0.01
2017.01.13 12:51:14.371 2017.01.05 16:20:00 martin GBPUSD,M5: MyArray[CountOrders][0]0.02
2017.01.13 12:51:14.371 2017.01.05 16:15:00 martin GBPUSD,M5: MyArray[CountOrders][0]0.01
No exemplo atual, quero poder colocar um número infinito de pedidos com qualquer lote para não exceder seus limites.
É claro que todos conhecemos os limites, mas eu quero fazer desta maneira
Procedo do fato de que se você especificar um elemento entre parênteses, ele será o último
Então eu tenho esse tipo de porcaria. Estava esperando uma ordem por ordem... lote? quero que o resultado(lote de um pedido *coeficiente) seja adicionado ao pedido em vez do lote
E a questão da recuperação de dados a partir daí
void CalcOrders()
{
int CountOrders=0;
double MyArray [99][99];
for(i=OrdersTotal()-1; i>=0; i--)
{
if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
&& (OrderMagicNumber()==Magic) && (OrderType()==OP_SELL))
CountOrders++;
ArrayResize(MyArray,CountOrders+1);
MyArray[CountOrders][0]=OrderLots();
Print("MyArray[CountOrders][0]",MyArray[CountOrders][0]);
}
}
2017.01.13 12:51:14.372 2017.01.05 16:30:00 martin GBPUSD,M5: MyArray[CountOrders][0]0.02
2017.01.13 12:51:14.372 2017.01.05 16:25:00 martin GBPUSD,M5: MyArray[CountOrders][0]0.01
2017.01.13 12:51:14.372 2017.01.05 16:25:00 martin GBPUSD,M5: MyArray[CountOrders][0]0.02
2017.01.13 12:51:14.371 2017.01.05 16:20:00 martin GBPUSD,M5: MyArray[CountOrders][0]0.01
2017.01.13 12:51:14.371 2017.01.05 16:20:00 martin GBPUSD,M5: MyArray[CountOrders][0]0.02
2017.01.13 12:51:14.371 2017.01.05 16:15:00 martin GBPUSD,M5: MyArray[CountOrders][0]0.01
Explique o que você precisa.
Vamos armazenar tudo em uma matriz, e depois?
Então giraremos a matriz e procuraremos a posição que você precisa, o que?
Qual posição, existe uma definição, ou por olho, eu olhei para a aba Comércio, sim, preciso 6, certo?Você pode explicar o que você precisa?
Vamos colocar tudo em uma matriz, e depois?
Vamos girar a matriz, procurar a posição que você precisa, o quê?
Eu olho para a aba "Comércio", eu sei que preciso de 6, certo?OnTick()
se a condição para abrir uma posição estiver correta
{open position}
se a condição de abertura de posição estiver correta
{encher a mesma quantidade }
Se o último lote for a posição 2 - vamos adicionar o lote *1,5 (a função encontrar o último irá retornar o segundo) e este será o terceiro
se esta for a quarta ordem
completar {lote zero+lote um}
se será a quinta ordem
preencher {lote 1 posição +lote 3}
Existe atualmente uma definição da última posição na lista
Precisamos escrevê-la em uma matriz e tirar a correta de uma vez porque não vejo outra forma de implementação no momento, então o número de ordens e posições deveria teoricamente ser infinito.
Eu mostrei o que fiz na função, não sei se está correto ou não.
Preciso retirar os dados e saber com antecedência qual ordem pode ser aberta em minha conta
Não pretendo que o sistema esteja funcionando, a implementação é importante
Boa tarde. Você pode me informar se preciso testar um EA e ele usa comandos para escrever e ler bits e arquivo csv, pois sabemos que ocorrem erros no modo de teste quando usamos operações de arquivo.
Não ocorrem erros. Só escreve para uma pasta diferente se a bandeira não for usada
FILE_COMMON
4096
Localização do arquivo em pasta compartilhada de todos os terminais do cliente Arquivos comuns. Esta bandeira é usada ao abrir arquivos (FileOpen()), copiar arquivos (FileCopy(), FileMove()) e verificar a existência de arquivos (FileIsExist())
Não ocorre nenhum erro. Só escreve para uma pasta diferente se a bandeira não for usada
FILE_COMMON
4096
Localização do arquivo em pasta compartilhada de todos os terminais do cliente Arquivos comuns. Esta bandeira é usada ao abrir arquivos (FileOpen()), copiar arquivos (FileCopy(), FileMove()) e verificar a existência de arquivos (FileIsExist())
Bem, eu uso FileOpen()
input string InpDirectoryName="";
string path=InpDirectoryName+"//"+InpFileName;
C:\Users\Rassvet\AppData\Roaming\MetaQuotes\Terminal\36A64B8C79A6163D85E6173B54096685\MQL5\Files
5004:ERR_FILE_CANNOT_OPEN = Open File Error
Bem, eu estou usando FileOpen()
input string InpDirectoryName="";
string path=InpDirectoryName+"//"+ InpFileName;
C:\Users\Rassvet\AppData\Roaming\MetaQuotes\Terminal\36A64B8C79A6163D85E6173B54096685\MQL5\Files
5004:ERR_FILE_CANNOT_OPEN = Erro de Abertura de Arquivo
FileOpen() não é uma bandeira... A bandeira é FILE_COMMON.
Se você não quiser escrever em uma pasta separada, não é necessário especificá-la como uma cadeia vazia no caminho. O desnecessário é destacado em amarelo.
FileOpen() não é uma bandeira... A bandeira é FILE_COMMON.
Se você não quiser escrever em uma pasta separada, não é necessário especificá-la como uma cadeia vazia no caminho. O desnecessário é destacado em amarelo.
Você pode me dizer onde eu posso ler sobre a propriedade estrita do #propriedade?
Olá!
Você pode me dizer onde posso ler sobre a propriedade estrita #propriedade?