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
Sim, eu quero fazer 3 passos
Exemplar:
Chegar aos 15 e voltar aos 10
Chegar aos 30 e voltar aos 15
Chegar aos 45 e voltar aos 15
Ou fechar em stop loss.
Vou tirar uma foto e tentar explicar melhor.
Isto é algo novo para mim.
Então, o fechamento do comércio perdedor sempre precisa esperar até que ele salte de volta, certo?
Que tal se não ressaltar?
Vamos fechar no SL incial?Obrigado agora, já consegui, agora tentando otimizar para obter bons resultados com esta proteção contra perdas.
Estou tentando encontrar informações sobre como traçar uma linha, assim como o indicador RSI, por exemplo... Tenho dois números que quero traçar como linhas no mesmo indicador
Eu sei que isso envolverá uma série de códigos, mas não estou tendo sorte em descobrir que grupo de códigos fará isso acontecer.
tampão indicador
Estou tentando encontrar informações sobre como traçar uma linha, assim como o indicador RSI, por exemplo... Tenho dois números que quero traçar como linhas no mesmo indicador... Sei que isso envolverá algum tipo de conjunto, mas não estou tendo sorte em descobrir que grupo de código fará isso acontecer.
Por favor, leia este artigo
Linguagem MQL4 para iniciantes. Indicadores personalizados (Parte 1) - Artigos da MQL4
Olá, pessoal,
Não sei se alguém está familiarizado com o Forex Made-EZ de George Smith.
Estou atualmente revendo seu trabalho e me pergunto se alguém codificou um indicador para o oscilador Oscar que ele usa?
A fórmula é
let A = a maior altura das últimas oito barras (incluindo esta)
let B = a mais baixa das últimas oito barras (incluindo esta)
let C = preço atual de fechamento das barras
let X = a figura do oscilador anterior (Oscar)
O oscilador "bruto" de hoje é igual a (C-B) dividido por (A-B) vezes 100.
Em seguida, "suavizamos" nosso número aproximado (vamos chamá-lo de Y) assim:
Número final do oscilador = ((X dividido por 3) vezes 2), mais (Y dividido por 3).
Se alguém já codificou isto ou pode codificar isto, seria muito apreciado.
Cumprimentos a SteveEu mesmo já codifiquei isto. Alguém poderia comentar se isto faz o que eu acho que faz. Os valores não parecem corresponder ao que eles fazem se eu calcular manualmente os números. Além disso, ele só começa a partir do momento em que o indicador é colocado. Eu gostaria que ele mostrasse também os valores históricos.
#Janela_do_indicador_de_propriedade
#property indicator_buffers 1
#indicador de propriedade_cores1 Vermelho
//---- buffers
duplo ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Função de inicialização do indicador personalizado |
//+------------------------------------------------------------------+
int init()
{
//---- indicadores
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
string short_name = "Oscar Indicator";
IndicatorShortName(nome_curto_curto);
//----
retorno(1);
}
//+------------------------------------------------------------------+
//| Função de desinicialização do indicador do cliente |
//+------------------------------------------------------------------+
int deinit()
{
retorno(0);
}
//+------------------------------------------------------------------+
//| Função de iteração de indicador personalizada |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//---- verificação de possíveis erros
se (counted_bars<0) retornar(-1);
//---- última barra contada será contada novamente
se (barras_contadas>0) barras_contadas--;
int pos=barras_contadas_combars;
//---- circuito principal de cálculo
duplo x;
x=50;
while(pos>=0)
{
duplo a, b, c, y, osc;
//let A = a maior altura das últimas oito barras (incluindo esta)
a=elevada;
//let B = a mais baixa das últimas oito barras (incluindo esta)
b=baixo;
//let C = preço atual de fechamento das barras
c = Fechar[pos];
//let X = a figura do oscilador anterior (Oscar)
// O oscilador "áspero" de hoje é igual a (C-B) dividido por (A-B) vezes 100.
y=((c-b)/(a-b))*100;
//Nextra "suavizamos" nosso número aproximado (vamos chamá-lo de Y) assim:
//Final número do oscilador = ((X dividido por 3) vezes 2), mais (Y dividido por 3).
osc=((x/3)*2)+(y/3);
ExtMapBuffer1[pos]= osc ;
pos--;
}
retorno(0);
}
Qualquer ajuda recebida com gratidão.
Obrigado Steve
Pergunte... Mode_trades
oi, alguém pode dar o exemplo para MODE_TRADES usar para?
Obrigado.
Para smb1970 - é isto :
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
#property indicator_maximum 100
#property indicator_minimum 0
//
//
//
//
//
extern int OscPeriod = 8;
extern int OscPrice = PRICE_CLOSE;
double oscBuffer[];
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//
//
//
//
//
int init()
{
SetIndexBuffer(0,oscBuffer);
IndicatorShortName("Osc ("+OscPeriod+")");
return(0);
}
int deinit() { return(0); }
int start()
{
int counted_bars=IndicatorCounted();
int i,limit;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//
//
//
//
//
for(i=limit; i>=0; i--)
{
double price = iMA(NULL,0,1,0,MODE_SMA,OscPrice,i);
double high = High[ArrayMaximum(High,OscPeriod,i)];
double low = Low[ArrayMinimum(Low,OscPeriod,i)];
//
//
//
//
//
if (high!=low)
double raw = 100.00*(price-low)/(high-low);
else raw = 0.00;
oscBuffer= oscBuffer*2.0/3.0 + raw/3.0;
}
return(0);
}Mas, veja também a foto: em cima está "Oscar" em baixo está Ema(5) de estocástico(8), ou para simplificar ainda mais, em baixo está estocástico(8,5,1) com a linha de sinal definida para exponencial. Assim, "Oscar" é simplesmente uma linha de sinal do estocástico
Obrigado!
Obrigado mladen, não só isso é muito útil, como também é muito revelador!
NewB precisa de alguma ajuda na codificação :-(
Olá a todos,
Estou precisando de uma ajuda díspar aqui . Tenho algum código que procurará um acordo entre diferentes indicadores. Uma vez que todos eles concordem, quero uma forma de entrar nas negociações da maneira que descrevi nas imagens do gráfico. Até agora eu posso entrar na 1ª "compra", mas ela não entra apenas em 1 "....", ela entra em até 8 negociações. E então, se o mercado vai contra mim, eu entro numa "negociação de contingência" onde estou comprando/vendendo novamente, apesar de estar indo contra mim. Eu apreciaria muito se alguém pudesse me mostrar como deve ser o código correto
Não tenho certeza se estas imagens aparecerão, mas só no caso de eu também tê-las como anexos.
Aqui está meu código defeituoso que é suposto executar o ofício.
enquanto (execute_comércio ==5)
{if ( OrdensTotal() == buy_trade1 ) //buy_trade1 = 1...isto pára depois de 1 ordem ter sido colocada...mas ainda não funciona
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point);
execute_trade=0;
if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
Imprimir ("Meu bilhete é: " , bilhete);
{
buy1 = OrderOpenPrice(); //tomando o preço da 1ª ordem e empurrando-a para esta variável
// Comentário("pedido #1 preço aberto é ", OrderOpenPrice() + " " + buy1 + " menos de " + (buy1-0.0030))
se (compre1 >= (compre1-0.0030))
{
//if ( OrdensTotal() <= buy_trade1 ) //isto pára após 1 ordem ter sido colocada.
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point);
//execute_trade=0;
}
} else
Print("OrderSelect devolveu o erro de ",GetLastError()));
}
NewB que precisa de ajuda com a codificação
Olá a todos,
Estou precisando de alguma ajuda díspar aqui. Tenho algum código que procurará um acordo entre diferentes indicadores. Uma vez que todos eles concordem, quero uma forma de entrar nas negociações da maneira que descrevi nas imagens do gráfico. Até agora eu posso entrar na 1ª "compra", mas ela não entra em apenas 1 negociação...., ela entra em até 8 negociações. E então, se o mercado vai contra mim, eu entro numa "negociação de contingência" onde estou comprando/vendendo novamente, apesar de estar indo contra mim.Eu apreciaria muito se alguém pudesse me mostrar como deve ser o código correto
Não tenho certeza se estas imagens aparecerão, mas só no caso de eu também tê-las como anexos.
Figura 1
Figura 2
Aqui está meu código defeituoso que é suposto executar o ofício...
enquanto (execute_comércio ==5)
{if ( OrdensTotal() == buy_trade1 ) //buy_trade1 = 1...isto pára depois de 1 ordem ter sido colocada...mas ainda não funciona
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+ TakeProfit*Point);
execute_trade=0;
if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
Imprimir ("Meu bilhete é: " , bilhete);
{
buy1 = OrderOpenPrice(); //tomando o preço da 1ª ordem e empurrando-a para esta variável
// Comentário("pedido #1 preço aberto é ", OrderOpenPrice() + " " + buy1 + " menos de " + (buy1-0.0030))
se (compre1 >= (compre1-0.0030))
{
//if ( OrdensTotal() <= buy_trade1 ) //isto pára após 1 ordem ter sido colocada.
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+ TakeProfit*Point);
//execute_trade=0;
}
}
senão
Print("OrderSelect devolveu o erro de ",GetLastError()));
}