[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 24

 
paladin80:
Se você quiser, que com 3 ordens já abertas, as subsequentes (4, etc.) abririam com 2 x lotes, então
Sim tudo está correto, mas preciso colocar tudo na segunda condição, estas duas condições são ligadas e desligadas manualmente se (LotConst_ou_não) gd_200 = Lot; (esta é a primeira condição)

else gd_200 = AccountBalance() * RiskPercent / 100.0 / 10000.0; (segunda condição)

Agora, ao invés de estabelecer um grande equilíbrio, devemos corrigir a condição onde com 3 pedidos abertos os subseqüentes (4, etc.) serão abertos com 2 lotes. Se houver funções mais simples.

 
Você poderia me dizer como fechar as ordens pendentes quando o takeeprofit de uma ordem de mercado é acionado?
 

Boa tarde!

Você pode me dizer como ler uma seqüência de texto com um certo número de um arquivo.

Em princípio, eu posso usar o seguinte código:

StringSubstr(Text,0,16);

Por exemplo, leia os primeiros 16 caracteres, mas se as linhas forem de comprimentos diferentes, e eu preciso de uma correspondência

valor1=linha 1;

value2=linha #2;

Agradecemos antecipadamente!

 

Por favor, sugira um processador de texto gratuito onde você possa mover uma parte do texto para uma nova linha ao substituí-lo.
Obrigado!

 
forexnew:

Boa tarde!

Você pode me dizer como ler uma seqüência de texto com um certo número de um arquivo.

Em princípio, posso usar este código:

Por exemplo, leia os primeiros 16 caracteres, mas se as cordas tiverem comprimentos diferentes, e eu precisarei de um fósforo

valor1=string #1;

value2=linha #2;

Agradecemos antecipadamente!



FileReadString(hwd);
 
artem86:
Você poderia aconselhar como fechar ordens pendentes quando a TakeProfit para uma ordem de mercado aciona?

Pegue a função Kim isCloseLastPosByTake().

Se voltar a ser verdade - o TP acionou.

Veja a própria função em https://www.mql5.com/ru/forum/107476/page21#79908

 
FAQ:

FileReadString(hwd);

Neste caso, você deve prescrever o comprimento do fio a ser lido, por exemplo

Str=FileReadString(handle); Symbol1=StringSubstring(Str,0,6); //6 caracteres

Str=FileReadString(handle); Symbol2=StringSubstring(Str,0,6); //6 símbolos

E se eu não souber o comprimento do fio ou se ele variar de linha para linha? Isto é, preciso "capturar" o texto de toda a cadeia.

 
forexnew:

Neste caso, você deve prescrever o comprimento do fio a ser lido, por exemplo

Str=FileReadString(handle); Symbol1=StringSubstring(Str,0,6); //6 caracteres

Str=FileReadString(handle); Symbol2=StringSubstring(Str,0,6); //6 símbolos

E se eu não souber o comprimento do fio ou se ele variar de linha para linha? Isto é, preciso "capturar" o texto de toda a cadeia.


Honestamente, não entendo bem qual é o problema...
Você pode sempre verificar o "comprimento da linha":

int StringLen( string text) 
Возвращает число символов в строке
 
atztek:

Para ser honesto, não sei bem qual é o problema...
Você pode sempre verificar o "comprimento da linha":

Obrigado! Está funcionando.
 

Veja cuidadosamente o formato da minha entrada, eu não especifiquei um comprimento de linha lá, então leia a descrição, novamente com cuidado:

string FileReadString(int handle, int length=0)
A função lê uma seqüência a partir da posição atual do arquivo. Aplica-se tanto a arquivos CSV como a arquivos binários. Para arquivos de texto, a cadeia será lida antes do separador. Para arquivos binários, um número especificado de caracteres será lido na cadeia.
Para obter informações sobre erros, ligue para a função GetLastError().
Parâmetros:
alça-Descritor de arquivo devolvido por FileOpen().
comprimento-Número de caracteres a serem lidos.
Exemplo:
 int handle; string str; handle=FileOpen("filename.csv", FILE_CSV|FILE_READ);// if(handle>0) { str=FileReadString(handle);//então esta função será lida até o final da string
FileClose(handle);

}