Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1072

 
jarikn:
Obrigado. Vou dar uma olhada nisso.

Obrigado também, você me lembrou de um sistema antigo que costumava funcionar com lucro. Preciso anotar isso a meu bel-prazer e testá-lo no mercado atual.

 
jarikn:
Olá a todos. Sou novo em programação.
Escrevi um simples Expert Advisor e agora preciso adicionar a ele a seguinte condição.
Se uma parada de perda é acionada por uma ordem de compra, então abrimos uma ordem de venda.
Por favor, ajude com este código

Mais opções:

1. Ao abrir Comprar, coloque o pedido SellStop no nível de stop loss do pedido de Compra. Então, seu desejo será atendido pelo servidor. Mas em situações excepcionalmente raras, mas precisas e não :-)

2. não colocar Stop Loss em nada, e colocar SellStop de volume duplo. Isto também será processado pelo servidor rapidamente. No final do dia ou quando a margem está esgotada, você precisa executar algum UnLock, que fecha mutuamente ordens opostas (CloseBy).

No entanto, há outra nuance - parar as ordens (e parar a perda, também) pode não funcionar. E isto é bastante freqüente.
Ou seja, em um robô de "combate", ainda temos que checá-lo duas vezes.
Общие принципы - Торговые операции - Справка по MetaTrader 5
Общие принципы - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Перед тем как приступить к изучению торговых функций платформы, необходимо создать четкое представление об основных терминах: ордер, сделка и позиция. — это распоряжение брокерской компании купить или продать финансовый инструмент. Различают два основных типа ордеров: рыночный и отложенный. Помимо них существуют специальные ордера Тейк Профит...
 
Vladimir Simakov:

Ele escreve que você não pode inicializar uma entidade wchar_t com um valor constante de char*.

Se você não compreende, infelizmente, não tem o básico do idioma. É muito cedo para você escrever uma dll, especialmente para uma linguagem tão específica como o mql. Comece com o básico.

Eu não sei o que eles aconselham a fazer. Nunca haverá um bom momento para este momento de aprender bibliotecas, seja agora ou nunca.

 
Maxim Kuznetsov:

2. não ponha um fim à perda, mas coloque um SellStop de volume duplo. Isto também será tratado pelo servidor e rapidamente. No final do dia ou quando a margem está esgotada, você precisa executar algum UnLock, que fecha mutuamente ordens opostas (CloseBy).

Devemos ter mais cuidado com o CloseBy , pois nem todas as corretoras apóiam este recurso.

 
Não sou um programador, portanto não posso resolver a questão mais simples: como ligar barra zero ao tempo, minutos :00, horas 00:,01:,02: etc. Alguém pode me dar uma dica?
 
Creativ:
Não sou um programador, portanto não posso resolver a questão mais simples: como ligar barra zero ao tempo, minutos :00, horas 00:,01:,02: etc. Alguém pode sugerir isso?

Há uma função para isso.

iTime(символ,таймфрейм, номер бара)

Ele retorna o tempo de bar.

 

Olá a todos. Pessoal, por favor, ajudem. Sou novo em programação.
Como conseguir isso em código MQL4.
Por exemplo, vou apertar o botão A e um cursor <Screenshot_2> aparecerá em um gráfico como este.
No Rectângulo de Desenho <Screenshot_1> não há hotkey. Como obter esta função.

Captura de tela_1

Captura de tela_1

Captura de tela_2.

Captura de tela_2

Obrigado.

 
caras, me ajudem com o Consultor Especialista, por favor. estou farto de.... Parece que não consigo consertá-lo, ele só tem erros.
O resultado final é o seguinte.
Funciona no indicador de feira Tma.
1) Assim que o preço está acima da linha superior - a ordem de venda é aberta, o preço está abaixo da linha inferior - a ordem de compra é aberta.
Eu fiz tudo isso, mas a questão é,
2) Assim que eu acionei uma parada de perda, uma ordem abre a mesma ordem! Como posso consertar este bug?
3) O pedido não é fechado quando o preço cruza a linha oposta! Parece funcionar, mas não vai funcionar. Fecha com prejuízo ou lucro cessante.

Gostaria também de acrescentar uma condição: se um Stop Loss foi acionado para compra, abra uma ordem de Venda. Acho que eu mesmo posso lidar com isso. Ajude-me apenas a corrigir esses erros.
Eu não sei o que fazer com ele. Acho que eu mesmo deveria fazer isso).
Arquivos anexados:
777.mq4  10 kb
TMA_Fair.mq4  9 kb
 

Por favor, ajude com o interruptor de compra e venda, estou apenas aprendendo!

nulo OnTick()

{

MAprice=iMA(Symbol(),0,MAperiod,MAshift,MODE_SMA,PRICE_CLOSE,1);

if(CountBuy() + CountSell() == 0 && Ask > MAprice)

{

if(OrderSend(Symbol(),OP_BUY,lot,Ask,slip,0,0,NULL,magic,0,clrBlue)<1)

Imprimir ("Falha na abertura de um pedido de compra!");

if(CountBuy()>=1)

{

preço = FindLastBuyPrice();

if((preço - Perguntar) >= passo*Ponto)

{

if(OrderSend(Symbol(),OP_BUY,lot,Ask,slip,0,0,NULL,magic,0,clrBlue)<1)

Imprimir("Falha na abertura de um pedido de compra!)

}

}

if(CountBuy() + CountSell() == 0 && Bid < MAprice)

{

if(OrderSend(Symbol(),OP_SELLL,lot,Bid,slip,0,0,NULL,magic,0,clrRed)<1)

Imprimir("Falha em abrir ordem de venda!)

}

}

if(CountSell()>=1)

{

preço = FindLastSellPrice();

if((preço -Bid) >= etapa*Ponto)

{

if(OrderSend(Symbol(),OP_SELLL,lot,Bid,slip,0,0,NULL,magic,0,clrRed)<1)

Imprimir ("Falha em abrir ordem de venda!");

}

}

double op = CalculateProfit();

if(op>=profit)

{

CloseAll();

}

}


//+------------------------------------------------------------------+

Válido CloseAll()


ou onde aprender?

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
 
Esta função não vincula a barra ao tempo. Eu quero Bar[0]=:00(minutos) ou 01:00, 02:00 ...de cada dia. Assim, somente quando chegar um determinado momento, o algoritmo será calculado. O resto do tempo, o indicador fica comigo.
Seric29:

Há uma função para isso.

Ele retorna o tempo de bar.