Artigos sobre: Robô Stark-Pro

[Manual Stark] Variáveis, funções e operadores permitidos nas expressões

Para construir o seu sinal de compra e venda em nosso robô é preciso escrever uma expressão utilizando as variáveis, funções e operadores listados abaixo:

Operadores


/ Divisão,
% Residual da Divisão, Retorna o resto da divisão entre o operando à esquerda pelo operando à direita, exemplo a % b
ӿ Multiplicação,
+ Soma,
- Subtração, Quando utilizado em uma expressão, colocar entre parênteses, exemplo: X >= (-Y)
> Maior que,
< Menor que,
>= Maior ou igual a,
<= Menor ou igual a,
== igual a,
!= Diferente de,
AND ou && condição de junção E
OR Condição de alternação OU, não utilize || pois o MT5 salva erroneamente strings com esse caractere.

Funções



Utiliza-se no seguinte padrão: NomeFuncão(param1, param2). Ex: abs(R1).

abs Transforma em valor absoluto, não permite deixar valor negativo. Leia mais...
arccos Arco trigonométrico, usa o cálculo do Cosseno. Leia mais...
arcsin Arco trigonométrico, usa o cálculo do Seno. Leia mais...
arctan Arco trigonométrico, usa o cálculo da Tangente. Leia mais...
ceil Usa o valor do número inteiro mais próximo para cima, arredondamento. Leia mais...
cos Usa o Cosseno de um número. Leia mais...
exp Usa valor como exponencial. Leia mais...
floor Usa o valor do número inteiro mais próximo para baixo, arredondamento. Leia mais...
iif Função condicional em suas expressões Leia mais...
log Usa a função logaritmo natural. Leia mais...
log10 Usa a função logaritmo com base 10. Leia mais...
max Usa o valor máximo de um cálculo, função ou variável. Leia mais...
min Usa o valor mínimo de um cálculo, função ou variável. Leia mais...
mod Usa o valor do resto de uma divisão. Leia mais...
pow Eleva uma base a uma potência especificada. Leia mais...
refp Essa função é capaz de calcular um preço da lista de opções de preços de referência do Stark sem precisar definir nada nos parâmetros (R1 ao R10). Leia mais...
rand(1) Usa um número inteiro pseudoaleatório no intervalo de 0 a 32767. O Valor 1 é o multiplicador, se usar rand(10) terá um número intervalo de 0 a 327.670
round Usa o valor arredondado para o inteiro mais próximo de um valor numérico especificado. Leia mais...
sin Usa o Seno de um número. Leia mais...
sqrt Usa a raiz quadrada do número especificado. Leia mais...
tan Usa a Tangente de um número. Leia mais...
resultdia(magic) Retorna o resultado de operações fechadas (busca do histórico) no dia atual.
ddvol(magic) Retorna o Drawdown acumulado do magic number por volume a partir da data de atualização do Setup, ou seja, para o cálculo cada resultado de operação é dividido pelo volume da operação. (a partir da v3.64)
ddvolm(magic) Retorna o MAIOR Drawdown acumulado do magic number por volume a partir da data de atualização do Setup, ou seja, para o cálculo cada resultado de operação é dividido pelo volume da operação. (a partir da v3.71)
lucrohist(magic) Retorna o lucro dos trades Fechados desde a data mais antiga de um trade ainda aberto no magic passado no parâmetro. (a partir da v3.65)

Obs: Caso queira obter o resultado de operações Fechadas+Abertas utilize:
resultdia(magic)+LUCRO[magic]-PREJU[MAGIC]



Variáveis



A Ask;
B Bid;
P Preço atual, o mesmo que C[0] ;
ACCOUNTBALANCE Saldo da conta, atualiza somente no fechamento das posições;
ACCOUNTEQUITY Saldo da conta a mercado, atualiza em real-time com as operações abertas;
ACCOUNTMARGIN Margem da conta usada na moeda de depósito;
ACCOUNTMARGINFREE Margem livre de uma conta na moeda de depósito;
ACCOUNTMARGINLEVEL Nível de margem de conta em percentagem;
ACCOUNTPROFIT Lucro total em aberto de uma conta na moeda de depósito;
ABERTURABALANCE Saldo da conta na abertura, atualiza somente na abertura de cada dia (a partir da v3.64);
ABERTURAEQUITY Saldo da conta a mercado na abertura, atualiza somente na abertura de cada dia (a partir da v3.64);
ATR Valor atual do indicador ATR; Período Indicador ATR
DP Valor atual do Indicador Desvio Padrão;
GAPDIA Tamanho do GAP do dia em pontos, será negativo caso seja GAP de baixa;
EXPMAX É a leitura do valor da exposição máxima do ativo que se configura nas variáveis globais;
LOTEINI Lote inicial configurado no Setup;
LOTEABERTO É o valor absoluto da posição em aberto, número de contratos;
LUCROABERTO Lucro aberto mostrado na tela do EA (considera parciais);
LUCRODIA Lucro das operações fechadas no dia;
LUCROMES Lucro das operações fechadas no mês;
LUCROSEM Lucro das operações fechadas no semana;
LUCROTOTAL Lucro total das operações fechadas no histórico da conta (atenção: algumas corretoras limitam o histórico);
MAE Máxima exposição (R$) contraria no dia;
MFE Máxima exposição (R$) favorável no dia;
MAGIC Número do Magic Number do setup;
MEDIO É o preço médio de todas as posições abertas no Magic Number do setup;
MEDIOC Retorna o preço médio das posições de Compra em aberto. (a partir da v3.65)
MEDIOV Retorna o preço médio das posições de Venda em aberto. (a partir da v3.65)
PA Condicional, retorna verdadeiro se estiver em formação uma perna de Alta;
PB Condicional, retorna verdadeiro se estiver em formação uma perna de Baixa;
POSCAB Total absoluto da Posição comprada no momento da abertura do dia (a partir da v3.50);
POSVAB Total absoluto da Posição Vendida no momento da abertura do dia (a partir da v3.50);
PRECOINI Preço de entrada Inicial da operação: SE POSICIONADO Preço de entrada da operação em aberto, SE ZERADO é o preço de entrada da última operação fechada;
QTDGAINDIA Quantidade de operações ganhadoras no dia;
QTDGAINMES Quantidade de operações ganhadoras no mês;
QTDGAINSEM Quantidade de operações ganhadoras na semana;
QTDGAINTOTAL Quantidade de operações ganhadoras total;
QTDLOSSDIA Quantidade de operações com prejuízo no dia;
QTDLOSSMES Quantidade de operações com prejuízo no mês;
QTDLOSSSEM Quantidade de operações com prejuízo na semana;
QTDLOSSTOTAL Quantidade de operações com prejuízo no total;
QTORDENSC Quantidade (contagem) de Ordens de Compra enviadas no dia (a partir da v3.50);
QTORDENSV Quantidade (contagem) de Ordens de Venda enviadas no dia (a partir da v3.50);
GAINCONSEC Retorna o valor total dos trades vencedores consecutivos. (a partir da v3.71);
LOSSCONSEC Retorna o valor total dos trades perdedores consecutivos (a partir da v3.71);
R1 ao R35 preços de referência informados nos parâmetros;
STARK_V1 ao STARK_V10 Quando informado essa variável nas expressões, o robô irá criar essa variável global com o valor 0 ;
SALDOAGR Valor do Saldo de Agressão (do Filtro de S.A);
SEGSOPERABERTA Tempo corrido em segundos desde a abertura da posição atual;
MINSDIA Minutos corridos do dia atual, exemplo: 17:30 será 1050 (a partir da v3.34);
SEGSDIA Segundos corridos do dia atual, exemplo: 17:30:05 será 63005 (a partir da v3.34);
SWAPABERTO Valor financeiro da soma do Swap das posições em aberto;
SEGSNEWBAR Segundos que faltam para abertura de um novo candle (Não funciona em BT;)
TICKPRICE Preço($) do tick em pontos; (Exemplos: R$1 no WIN preço do tick de 5 pts);
TICKSIZE Tamanho do tick em pontos; (Exemplos: 5 no WIN, 0.5 no WDO);
IDATIVO Retorna um valor numérico único e fixo para cada ativo (cuidado ao travar via expressão ativos com vencimento, cada código de ativo terá um ID;)
ULTLOTEC Lote aberto na ultima ordem de Compra enviada (a partir da v3.50);
ULTLOTEV Lote aberto na ultima ordem de Venda enviada (a partir da v3.50);
ULTRESULT Retorna o valor total dos trades que ocorreram na ultima operação. Essa informação é perdida quando se remove o Stark da Tela. (a partir da v3.65)




As variáveis LUCRODIA, LUCROMES, LUCROSEM e LUCROTOTAL são para o calculo da meta no set, não referente a conta.

Arrays


Os arrays são conjunto de dados agrupados em um nome único, sendo que para acessar cada dado do conjunto é necessário informar o número da posição entre colchetes [].
O número da posição poderá ser:
O ID do candle que deseja obter o valor, sendo 0 para o candle em formação, 1 para o ultimo candle fechado e assim por diante, exemplo: C[1]
Ou o número do magic number do setup, poderá utilizar também a váriavel magic, exemplo: LOSS[magic]

O[ ] Open (abertura);
H[ ] High (máxima);
L[ ] Low (mínima);
C[ ] Close (fechamento);
V[ ] Volume em Lotes;
T[ ] Tick volume, volume em número de negócios;
S[ ] Spread, diferença entre Ask e Bid;
IFR[ ] Valor do indicador IFR (RSI), defina o IFR na parte de Filtros;
OBV[ ] Valor do indicador OBV ), defina o OBV na parte de Filtros;
M1[ ] , M2[ ] , M3[ ] e M4[ ] Valor da média móvel definida no Stark;
B1s[ ] e B2s[ ] Valor da Banda Superior definida no Stark;
B1m[ ] e B2m[ ]` Valor da Média da Banda definida no Stark;
B1i[ ] e B2i[ ] Valor da Banda Inferior definida no Stark;
TP[ ] Topo, sendo TP[0] o ultimo, TP[1] o penúltimo, etc...
FD[ ] Fundo, sendo FD[0] o ultimo, FD[1] o penúltimo, etc...
POS[magic] Netting das posições do Magic;
POSC[magic] Nr. de Lotes Comprados no Magic;
POSV[magic] Nr. de Lotes Vendidos no Magic;
ENTRADAC[magic] Registra durante a operação o preço da ultima entrada e reentrada na Compra;
ENTRADAV[magic] Registra durante a operação o preço da ultima entrada e reentrada na Venda;
LOSS[magic] Preço do SL do Magic;
LOSSC[magic] Retorna o Stop Loss da última operação de Compra aberta no Magic, em casos de reentradas será retornado o preço do SL da última reentrada.
LOSSV[magic] Retorna o Stop Loss da última operação de Venda aberta no Magic, em casos de reentradas será retornado o preço do SL da última reentrada.
TAKE[magic] Preço do TP do Magic;
TAKEC[magic] Retorna o preço do Take Profit da última operação de Compra aberta no Magic, em casos de reentradas será retornado o preço do TP da última reentrada.
TAKEV[magic] Retorna o preço do Take Profit da última operação de Venda aberta no Magic, em casos de reentradas será retornado o preço do TP da última reentrada.
PREJU[magic] Valor Absoluto em R$ do Prejuízo aberto no Magic;
PREJUP[magic] Valor Absoluto em Pontos do Prejuízo aberto no Magic;
LUCRO[magic] Valor Absoluto em R$ do Lucro aberto no Magic;
LUCROP[magic] Valor Absoluto em Pontos do Lucro aberto no Magic;

A variável magic possuí o valor do Magic Number do Set (ID), em vez de magic você poderá passar o número do magic direto, exemplo: LUCRO[123456]
Se passar 0 como Magic será retornado referente a tudo o quê estiver aberto na conta.

Exemplos:
LUCRO[magic] Lucro das posições abertas com o Magic do Set;
LUCRO[123] Lucro das posições abertas com o Magic 123;
LUCRO[0] Soma do Lucro de todas as posições abertas na conta;


Exemplos de sinais por expressão



Teste de LTs:
Compra:
O[0]>R1 && P<=R1

Venda:
O[0]<R2 && P>=R2

Sendo R1 a LTA e R2 a LTB**.

Cruzamento de duas Médias Móveis:
Compra:
M1[1] > M2[1] && M1[2] < M2[2]

Venda:
M1[1] < M2[1] && M1[2] > M2[2]

Sendo M1 uma média móvel rápida e M2 uma média lenta.

Afastamento da Media (contra tendência)
Compra:
P <= R1

Venda:
P >= R2

Sendo R1 uma Média Móvel M1 com deslocamento negativo e R2 a M1 com deslocamento positivo.

Engolfo:
Compra:
C[2]<O[2] && C[1]>O[1] && C[1]>H[2]

Venda:
C[2]>O[2] && C[1]<O[1] && C[1]<L[2]


InsideBar:
Compra:
H[1]<=H[2] && L[1]>=L[2]

Venda:
H[1]<=H[2] && L[1]>=L[2]


Exemplo de contagem de Topos e Fundos





Exemplo de utilização dos preços OHLC e médias.








ATENÇÃO: Nenhuma alteração deve ser realizada nos parâmetros do setup enquanto o mesmo estiver com operação aberta, isso poderá causar a perda de informações em memória e prejudicar a operação em andamento. Para realizar qualquer alteração você deve aguardar a posição do magic number estar completamente zerada, é recomendável ainda desligar o algotrading antes da alteração e voltar a ligar somente quando o setup estiver totalmente recarregado.

Atualizado em: 11/08/2023

Este artigo foi útil?

Compartilhe seu feedback

Cancelar

Obrigado!