[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 106
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
Pessoal, socorro: tenho uma condição em minha EA que é abrir uma posição de compra somente se o baixo do castiçal anterior estiver abaixo de todos os baixos dos 40 castiçais anteriores. A pergunta: como implementar esta enumeração dos mínimos anteriores do castiçal e descobrir se o mínimo do castiçal anterior estava abaixo do mínimo do castiçal anterior? Agradeço antecipadamente.
Ai, obrigado!)
Mmm... O problema é o seguinte... Os dados devem ser atualizados a cada novo tick e somente para as últimas 30 barras. Eu guardo os dados por algum motivo
Ajude-me a encontrar um erro!
Estou escrevendo um EA baseado na estratégia "Black MACD":
Par de moedas: qualquer
Prazo: 15 e mais.
Indicadores: EMA(3) EMA(18), RSI(14), MACD(12,26,9)
Remova a linha de sinal do indicador MACD, todos os indicadores são aplicados ao indicador Fechar preço.
Comprar sinal de entrada: EMA(3) atravessa o EMA(18) de baixo para cima, esperar que o MACD mostre um lado positivo. Se o RSI(14) estiver acima do nível 50, então compre. A parada de perda é definida no último mínimo local. Saia do comércio invertendo o crossover do EMA, ou use sua própria abordagem.
Sinal para vender: Situação inversa: Cruzamento do EMA(3) EMA(18) para baixo, esperar que o MACD seja negativo. Se RSI(14) estiver abaixo de 50, então compre. Stop-loss está ajustado para a última alta.
Ao compilar o código, ele diz que falta um parêntese. Depois de uma longa busca, eu parecia ter encontrado onde deveria estar, mas depois de corrigir o erro consegui mais 20-30 novos bugs. Por favor, me avise onde eu perdi isso. ))) O código está no arquivo anexo.
BlackvMACD.mq4 (5.21 KB) apagar
Leia: https://book.mql4.com/ru/variables/arrays . Acontece que eu posso organizar uma matriz bidimensional para três pares: duplo Mas_d[3][2] = {1, 0, 2, 0, 3,0};
tendo isso em mente:
o valor de Mas_d[1][1] corresponde, por exemplo, ao par AUDCAD, e Mas_d[1][2] é o valor deste par;
o valor de Mas_d[2][1] corresponde, por exemplo, ao par AUDCHF e Mas_d[2][2] é o valor deste par;
valor Mas_d[3][1] corresponde por exemplo ao AUDJPY, e Mas_d[3][2] é o valor deste par,
os elementos da matriz mantêm seus valores entre carrapatos. E então eu serei capaz de mudar os valores dos elementos da matriz de acordo com o critério que eu preciso. Eu entendi corretamente o que você quer dizer? :)
Sim. A abordagem pode não ser a melhor, mas todos a escolhem. E então, se necessário, modernizá-lo e otimizá-lo! :))
Estou no processo de modernização de minha abordagem. Não é conveniente em alguns casos! :D
Sim. A abordagem pode não ser a melhor, mas todos a escolhem por si mesmos. E então, se necessário, modernizá-lo e otimizá-lo! :))
Estou no processo de modernização de minha abordagem. Não é conveniente em alguns casos! :D
Sou um principiante e tentei escrever um Expert Advisor de teste, mas cometi um erro ao compilá-lo " {\i1}end_of_program' - final do parêntese '} esperado C:\Program Files\ForexClub MT4 Experts\trsi01.mq4 (30, 3)" Eu sei que escrevi errado, você poderia por favor me dizer onde cometi erros?
//+------------------------------------------------------------------+
//| trsi01.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#direitos autorais "Copyright © 2011, MetaQuotes Software Corp.
#link da propriedade "http://www.metaquotes.net"
StopLoss duplo=30;
duplo TakeProfit=100;
Lotes duplos=0,1;
retorno(0);
int start()
{
if(iRSI(NULL,0,8,PRICE_CLOSE,0)<30)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point)
{
if(iRSI(NULL,0,8,PRICE_CLOSE,0)>70)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point);
{
retorno(0);
{
Sou um principiante e tentei escrever um Expert Advisor experimental, mas quando o compenso recebo o erro "end_of_program" - parêntese final '} esperado C:\Program Files\ForexClub MT4 Experts\trsi01.mq4 (30, 3)" Eu sei que escrevi errado, você poderia me dizer onde está o erro?
//+------------------------------------------------------------------+
//| trsi01.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#direitos autorais "Copyright © 2011, MetaQuotes Software Corp.
#link da propriedade "http://www.metaquotes.net"
stopLoss duplo=30;
duplo TakeProfit=100;
Lotes duplos=0,1;
retorno(0);
int start()
{
if(iRSI(NULL,0,8,PRICE_CLOSE,0)<30)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point)
{
if(iRSI(NULL,0,8,PRICE_CLOSE,0)>70)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point);
{
retorno(0);
{
O erro é que você não leu o manual de capa a capa. Se você o abriu de todo.
Mas você obviamente perdeu esta seção: Operador condicional se - caso contrário.
Seria melhor você ler o livro de capa a capa.
Obrigada, não se esqueça disso :). Poderia me dizer, por favor, qual stop-loss mínimo tem um par de moedas específico? Por exemplo, EURAUD - você não pode definir um limite de perda inferior a 100 pips para EURAUD, e para os outros?
https://book.mql4.com/ru/appendix/marketinfo
Como você forma um número binário, por exemplo, de 7 dígitos? E como pode então (por conveniência) ser convertido para um número decimal?