![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Neste indicador, há alguns problemas ao utilizar as citações de 4 dígitos. Mas não é crítico, o problema é a escala de 4 dígitos para o nível de 100, tentou mostrar as figuras, olhando para o momento certo está muito cansando seus olhos (depois de alguns dias, seja como um fio para mudar a escala para o nível de 40 - seria melhor ser visto histogramas e canto direito do texto que indicariam o valor atual?
Оставлю оригинальный текст на русском русском, тк возможны искажения при переводе(
У этого индикатора есть некоторые проблемы при использовании 4 значных котировок. Но это не критично, самая проблемы это масштабирование на 4 значном до уровня 100, постарался показать на картинках, разглядывать нужный нужный момент напрягает глаза( после нескольких дней, можно ли как нить поменять масштаб до уровня уровня 40 - что бы лучше было видно гистограммы и и в правом углу текстом что что бы текущее текущее значение? Еще не могу понять почему появляються почему появляються черные гистограммы поверх при увеличении (
Mladen,
Estou trabalhando com o MT5.
Eu tenho esta " função de trilha simples" que eu preciso converter para "trilha com passo", você poderia dar uma dica?
na EA que eu tenho
===================
entrada "Trailing" (por pontos)
=> exemplo:
trailing: 4000 (4 pontos)
(método antigo) se o preço movesse 4 pontos movesse 4 pontos
mas preciso modificar para
===================
entrada "Trailing (Distância) em pontos
entrada "Trailing (Step) in points" (Etapa)
=> exemplo:
distância de fuga: 4000 (4 pontos)
etapa de fuga : 1500 (1,5 pontos)
(novo método) se o preço moveu 4 pontos moveu o stoploss 1,5 pontos
//| Simple Trailing function |
//+------------------------------------------------------------------+
void fSimpleTrailing(){
if(Trailing<=0){
return;
}
if(!Pos.Select(_Symbol)){
return;
}
if(!Sym.RefreshRates()){
return;
}
double nsl,tmsl,psl;
switch(Pos.PositionType()){
case POSITION_TYPE_BUY:
nsl=Sym.NormalizePrice(Sym.Bid()-_Point*Trailing);
if(nsl>=Sym.NormalizePrice(Pos.PriceOpen())){
if(nsl>Sym.NormalizePrice(Pos.StopLoss())){
tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel());
if(nsl<tmsl){
Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
}
}
}
break;
case POSITION_TYPE_SELL:
nsl=Sym.NormalizePrice(Sym.Ask()+_Point*Trailing);
if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())){
psl=Sym.NormalizePrice(Pos.StopLoss());
if(nsl<psl || psl==0){
tmsl=Sym.NormalizePrice(Sym.Ask()+_Point*Sym.StopsLevel());
if(nsl>tmsl){
Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
}
}
}
break;
}
}
Não é esse o repintor?
Mladen,
Estou trabalhando com o MT5.
Eu tenho esta "função de trilha simples" que eu preciso converter para "trilha com passo", você poderia dar uma dica?
na EA que eu tenho
===================
entrada "Trailing" (por pontos)
=> exemplo:
trailing: 4000 (4 pontos)
(método antigo) se o preço movesse 4 pontos movesse 4 pontos
mas preciso modificar para
===================
entrada "Trailing (Distância) em pontos
entrada "Trailing (Step) in points" (Etapa)
=> exemplo:
distância de fuga: 4000 (4 pontos)
etapa de fuga : 1500 (1,5 pontos)
(novo método) se o preço moveu 4 pontos moveu o stoploss 1,5 pontos
//| Simple Trailing function |
//+------------------------------------------------------------------+
void fSimpleTrailing(){
if(Trailing<=0){
return;
}
if(!Pos.Select(_Symbol)){
return;
}
if(!Sym.RefreshRates()){
return;
}
double nsl,tmsl,psl;
switch(Pos.PositionType()){
case POSITION_TYPE_BUY:
nsl=Sym.NormalizePrice(Sym.Bid()-_Point*Trailing);
if(nsl>=Sym.NormalizePrice(Pos.PriceOpen())){
if(nsl>Sym.NormalizePrice(Pos.StopLoss())){
tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel());
if(nsl<tmsl){
Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
}
}
}
break;
case POSITION_TYPE_SELL:
nsl=Sym.NormalizePrice(Sym.Ask()+_Point*Trailing);
if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())){
psl=Sym.NormalizePrice(Pos.StopLoss());
if(nsl<psl || psl==0){
tmsl=Sym.NormalizePrice(Sym.Ask()+_Point*Sym.StopsLevel());
if(nsl>tmsl){
Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
}
}
}
break;
}
}
Se o preço mudou em relação a : o quê?
antes de chamar a função que você tem
se o preço está "crescendo" , você verifica a "distância" em pontos... se ela corresponde à "distância" você se move em stopploss usando o passo (em pontos)
exemplo:
stoploss =8000
distância de fuga = 4000
passo de fuga = 2000
você compra ao preço de 10.000
agora o preço é de 14000 (meta de distância de trilha alcançada=4000) , agora você precisa mover o stoploss para 6000 (8000 - etapa de trilha)
agora o preço é de 18000 (meta de distância de trilha alcançada=4000 ), agora você precisa mover o stoploss para 2000 (6000 - etapa de trilha)
agora o preço é 22000 (meta de distância de trilha alcançada=4000), agora você precisa mover o stoploss para "entrada" + 2000 (2000 - etapa de trilha =-2000)
agora o preço é 24000 (meta de distância de trilha alcançada=4000), agora você precisa mover o stoploss para "entrada" + 6000 (-2000 - etapa de trilha =-6000)
antes de chamar a função que você tem
se o preço está "crescendo" , você verifica a "distância" em pontos... se ela corresponde à "distância" você se move em stopploss usando o passo (em pontos)
exemplo:
stoploss =8000
distância de trilha = 4000
etapa de trilha = 2000
você compra ao preço de 10.000
agora o preço é 14000 (meta de distância de fuga alcançada=4000), agora você precisa mover o stoploss para 6000 (8000 - etapa de fuga)
agora o preço é 18000 (meta de distância de fuga alcançada=4000 ), agora você precisa mover o stoploss para 2000 (6000 - etapa de fuga)
agora o preço é 22000 (meta de distância de fuga alcançada=4000), agora você precisa mover o stoploss para "entrada" + 2000 (2000 - etapa de fuga =-2000)
agora o preço é 24000 (meta de distância de trilha alcançada=4000), agora você precisa mover o stoploss para "entrada" + 6000 (-2000 - etapa de trilha =-6000)
Hi,
Eu gostaria de escrever uma função que desenha uma flecha. Eu gostaria que a flecha flutuasse. Alguma idéia? :)
void DrawArrow(string name, int IdSymbol, int x, int y, int width, int corner, color clr)
{
ObjectCreate(0,name,OBJ_ARROW,0,0,0,0,0);
ObjectSetInteger(0,name,OBJPROP_ARROWCODE,IdSymbol);
ObjectSetInteger(0,name,OBJPROP_CORNER,corner);
ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
ObjectSetInteger(0, name, OBJPROP_COLOR, clr);
ObjectSetInteger(0,name,OBJPROP_WIDTH,width);
ChartRedraw(0);
}
Sim, mas se você não tem isso registrado (como geralmente é um caso com o stop loss ou tomar preços de lucro: quando eles são trocados começam a ser um critério para outra mudança) você é obrigado a ter isso em variáveis e isso é tudo menos à prova de erro. O que você está tentando não é repetível pelo código ou você tem que codificar em código duro esses stops para cada caso, o que o torna inutilizável para qualquer preço aberto que não seja exatamente o mesmo que os preços codificados em código duro.
Oi mladen,
aqui está a amostra-ea
Hi,
Eu gostaria de escrever uma função que desenha uma flecha. Eu gostaria que a flecha flutuasse. Alguma idéia? :)
void DrawArrow(string name, int IdSymbol, int x, int y, int width, int corner, color clr)
{
ObjectCreate(0,name,OBJ_ARROW,0,0,0,0,0);
ObjectSetInteger(0,name,OBJPROP_ARROWCODE,IdSymbol);
ObjectSetInteger(0,name,OBJPROP_CORNER,corner);
ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
ObjectSetInteger(0, name, OBJPROP_COLOR, clr);
ObjectSetInteger(0,name,OBJPROP_WIDTH,width);
ChartRedraw(0);
}
O que significa a flecha "flutuante"?
PS: os objetos de seta não estão usando as coordenadas x e y ou o canto. Eles estão usando o tempo e o preço
oi mr mladen
por favor, faça o MTF para ele
respeito