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
Código Atr decrescente ???
Atr decresing - qual é o código mql4 ?
--------------------------------------------------------------------------------
Atr decrescente
qual é o código mql4 ?
Eu gostaria que a minha ea não abrisse posições se
a ATR d1 é > ATR d1 (-1)
Como codificar 3 níveis de Trailing Stops
TrailingStop = 50;
TrailingStop_Over100 =30;
TrailingStop_Over150 = 20;
Nível 1: 0-100 pip lucro - TS é 50 pips
Nível 2: 101-150 pip lucro - TS muda para 30 pips
Nível 3: 151+ lucro da tubulação - TS muda para 20 pips
Como codificar isto( movimento dedireção positiva ) para que o TS mude assim que o lucro da tubulação aumente?
Dave ...
<<<
Realmente apreciaria a experiência de um codificador.
após a primeira travessia, várias barras de distância
Olá a todos os programadores guru's aqui eu sou um novato em programação mql4 e fiquei preso em um problema,
portanto, é o seguinte :
tenho 2 EMA 5 e 20 PERIODO_15 e respetivamente 5 e 20 EMA em PERIODO_H1.
Portanto, quando estou entrando numa posição com a primeira cruz PERÍODO_M15, o conselheiro fecha a posição imediatamente na mesma barra se o preço se mover para o outro lado e fizer uma cruz inversa. Isto é programmaticamente correto, mas meu problema real é esperar pelas próximas 1-2 ou mais barras e depois fechar a posição se a cruz for encontrada.
Então, você pode me ajudar a fazer isso ? se algum tópico relacionado com o mesmo problema estiver aqui, você pode me enviar um link
e os Moderadores podem remover o posto .
thx com antecedência!!
-- se você já tiver uma posição aberta
-- se ocorrerem demasiadas cruzes
-- esperar um pouco antes de sair desta posição
-- isto deve resolver as cruzes repetidas em um só compasso
if(firstCross == 1)
{
---------------------------//Close, verifique se o próximo bar será impresso após OpenOrderPrise()-----------------------------------
if(openbar <= closebar)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Red); // posição fechada
retornar(0); // sair
}else
retorno(0);
}
bem, eu encontrei uma solução assustadora já anexei
Se você tiver algumas idéias de otimização para a mudança de tempo ou idéias de otimização no código, eu apreciarei qualquer sugestão com antecedência.
Precisa de sua ajuda
Olá comerciantes,
Eu realmente apreciarei se alguém puder me ajudar a desenvolver o alerta para este indicador ( MT4-LevelStop-Reverse-vB0-3).
Eu quero que o alerta toque imediatamente a seta apareça.
Obrigado antecipadamente.
oi,
eu uso seu sortudo v2, e quero saber o código de adição de texto no gráfico que não está usando o objeto-rótulo-->ver a foto ~~
e o usuário não pode delongar o texto~ ~ ~
o texto está sendo assim... "Sua sorte é livre e ainda em desenvolvimento..."
como codificá-lo?
obrigadoUse o comando Comentário()
Comentário - Documentação MQL4
como codificar algum texto uneliminateAble no gráfico
oi,
eu uso seu sortudo v2, e quero saber o código de adição de texto no gráfico que não está usando o objeto-rótulo-->ver a foto ~~
e o usuário não pode delongar o texto~ ~ ~
o texto está sendo assim... "Seu sortudo v2 EA está livre e ainda em desenvolvimento..."
como codificá-lo?
obrigado
Pedido múltiplo e múltipla trilha
No meu Ea eu uso pedidos múltiplos, um no mercado e outro com limite de compra/venda
Quando recebo as 3 entradas, como por exemplo, quero que a trilha comece junto e o trabalho junto.
Um exemplo
1 entrada a 1,50
2entrada em 1,4950
3 entrada em 1.4930
o percurso é de 50 pontos, mas eu quero que o percurso comece quando chegar a 1.5050 não antes, se eu usar o percurso normal quando o preço chegar a 1.5001 a segunda entrada (se estiver cheia) começa a seguir, mas eu não quero... eu quero que o percurso comece com 50 pip e todos ao mesmo preço, portanto a 1.5050
Então, é melhor guardar o bilhete para o undertand, qual pedido eu uso?
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-Point*StopLoss,Ask+TakeProfit*Point,0,0,Green);
LastClosedBar = Time[0];
RefreshRates();
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
entratalong= OrderOpenPrice( );
ticket2=OrderSend(Symbol(),OP_BUYLIMIT,Lots_2ingresso,entratalong-Point*Secentrata-2*Point,3,entratalong-Point*StopLoss-2*Point,entratalong+TakeProfit*Point,NULL,1,0,Magenta); // NULL, c'e il null in + //
ticket3=OrderSend(Symbol(),OP_BUYLIMIT,Lots_3ingresso,entratalong-Point*Terzentrata-2*Point,3,entratalong-Point*StopLoss-2*Point,entratalong+TakeProfit*Point,NULL,2,0,Magenta); // buono dei test //
[/CODE]
Here the trailign stop, it don't work the trail 1 e trail 2 with at the same time i control the ticket!!!
[CODE]
int TrailStop ()
{
int cnt,result,total=OrdersTotal();
double gain2=Lots_2ingresso;
double gain3=Lots_2ingresso;
int ticket,ticket2,ticket3;
for(cnt = total-1; cnt >= 0; cnt--)
{
RefreshRates();
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if ((OrderSymbol() == Symbol()) && (OrderProfit() > 0.00))
{
if (OrderType()==OP_BUY && OrderTicket()==ticket )
{
if(Bid - OrderOpenPrice() > Point * TrailingStop )
{
if(OrderStopLoss() < Bid - Point * TrailingStop)
{
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
for(cnt = total-1; cnt >= 0; cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if( OrderType()!=OP_SELL && OrderType()!=OP_BUY) //&& trail==1 && OrdersTotal() > 1 )
result =OrderDelete(OrderTicket());
}
Alert("sta facendo trail");
}
}
}
// trailing 2 parte X pip dopo
if (OrderType()==OP_BUY && OrderTicket()==ticket2)
{
if(Bid - OrderOpenPrice() > Point * Trailing2)
{
if(OrderStopLoss() < Bid - Point * TrailingStop)
{
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
}
}
}
// trailing 3 parte X pip dopo
if (OrderType()==OP_BUY )
{
if(Bid - OrderOpenPrice() > Point * Trailing3)
{
if(OrderStopLoss() < Bid - Point * TrailingStop)
{
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
}
}
}// fine trailing
Favor alterar este código EMA
Este é um excelente código por: Coders Guru. Alguém pode, por favor, mudá-lo para mim. Eu preciso dele para apenas FECHAR os negócios abertos. Eu criei um sistema que me diz quando devo abrir as negociações e não quero ficar sentado no computador o dia todo.
a fim de fechar negócios. Obrigado Equipe.
Altere o código, por favor
Este é um excelente código por: Coders Guru. Alguém pode, por favor, mudá-lo para mim. Eu preciso dele para apenas FECHAR os negócios abertos. Eu criei um sistema que me diz quando devo abrir as negociações e não quero ficar sentado no computador o dia todo para fechar as negociações. Obrigado, equipe.
//+------------------------------------------------------------------+
//| EMA_6_12.mq4 |
//| Coders Guru |
//| Forex TSD| Metatrader Indicators and Experts Advisors |
//+------------------------------------------------------------------+
#propriedade copyright "Coders Guru"
#link da propriedade "https://www.forex-tsd.com"
//---- Inclui
#incluir
//---- Limites comerciais
TrailingStop duplo externo = 40;
Duplo TakeProfit externo = 1000; // qualquer número grande
Lotes duplos externos = 1;
Escorregão interno externo = 5;
//--- Opções externas
Corrente Interior Externa Bar = 1;
bool externo UseClose = verdadeiro;
//--- Configurações dos indicadores
externo int MaMode = 1; /* MODE_SMA 0 MODE_EMA 1 MODE_SMMA 2 MODE_LWMA 3 */
externo int ShortEma = 4;
Exterior int LongEma = 8;
//--- Variáveis globais
int MagicNumber = 123430;
string ExpertComment = "EMA_4_8";
bool LimitPairs = falso;
bool LimitFrame = falso;
int TimeFrame = 60;
string LP[] = {"EURUSD", "USDJPY", "AUDUSD", "GBPUSD", "EURGBP", "USDCHF"}; // adicionar/remover a paris que você deseja limitar.
bool Optimize = falso;
int NumberOfTries = 5;
//+------------------------------------------------------------------
int init()
{
retorno(0);
}
int deinit()
{
retorno(0);
}
//+------------------------------------------------------------------
bool isNewSymbol(string current_symbol)
{
//loop através de toda a ordem aberta e comparar os símbolos
int total = EncomendasTotal();
for(int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
string selected_symbol = OrderSymbol();
if (símbolo_símbolo_actual ==símbolo_seleccionado && OrderMagicNumber()==Número_de_ordem)
retorno (Falso);
}
retorno (Verdadeiro);
}
//+------------------------------------------------------------------
int Crossed()
{
duplo EmaLongPrevious = iMA(NULL,0,LongEma,0,MaMode, PRICE_CLOSE, CurrentBar+1);
duplo EmaLongCurrent = iMA(NULL,0,LongEma,0,MaMode, PRICE_CLOSE, CurrentBar);
duplo EmaShortPrevious = iMA(NULL,0,ShortEma,0,MaMode, PRICE_CLOSE, Barra de Corrente+1);
duplo EmaShortCurrent = iMA(NULL,0,ShortEma,0,MaMode, PRICE_CLOSE, Barra de Corrente);
se (EmaShortPreviousEmaLongCurrent ) retorno (1); // tendência ascendente
se (EmaShortPrevious>EmaLongPrevious && EmaShortCurrent<EmaLongCurrent ) retornar (2); // tendência decrescente
retorno (0); //exterior
}
//+------------------------------------------------------------------+
int start()
{
int cnt, bilhete, total,n;
dupla tendência ;
if(Bars<100) {Imprimir("barras inferiores a 100"); retornar(0);}
if(LimitFrame)
{
if(Period()!=TimeFrame) {Print("Esta EA não está trabalhando com este TimeFrame!"); return(0);}
}
if(LimitPairs)
{
if(AllowedPair(Symbol()) == falso) {Print("Esta EA não está trabalhando com esta moeda!"); return(0);}
}
//--- Condições comerciais
bool BuyCondition = false , SellCondition = false , CloseBuyCondition = false , CloseSellCondition = false ;
se (Cruzado() == 1 )
BuyCondition = falso;
se (Cruzado ()== 2 )
SellCondition = falso;
se (Cruzado ()== 1)
CloseBuyCondition = true;
se (Cruzado ()== 1)
CloseSellCondition = true;
total = EncomendasTotal();
if(total < 1 ||| isNewSymbol(Symbol()))
{
if(BuyCondition) //<-- Condição de compra
{
bilhete = OpenOrder(OP_BUY); //<-- Ordem de Compra Aberta
CheckError(bilhete, "BUY");
return(0);
}
if(SellCondition) //<-- Condição de venda
{
bilhete = OpenOrder(OP_SELL); //<-- Ordem de venda aberta
CheckError(bilhete, "SELL");
return(0);
}
retorno(0);
}
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY) //<-- Abertura de posição longa
{
if(UseClose)
{
if(CloseBuyCondition) //<-- Feche o pedido e saia!
{
CloseOrder(OrderType()); return(0);
}
}
TrailOrder(OrderType()); return(0); //<-- Preenchimento do pedido
}
if(OrderType()==OP_SELL) //<-- Vá para a posição curta
{
if(UseClose)
{
if(CloseSellCondition) //<-- Feche o pedido e saia!
{
CloseOrder(OP_SELL); return(0);
}
}
TrailOrder(OrderType()); return(0); //<-- Preenchimento do pedido
}
}
}
retorno(0);
}
//+------------------------------------------------------------------+
int OpenOrder(tipo int)
{
int ticket=0;
int err=0;
int c = 0;
if(type===OP_BUY)
{
for(c = 0 ; c < NumberOfTries ; c++)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,Ask+TakeProfit*Point,ExpertComment,MagicNumber,0,Green);
err=GetLastError();
if(err==0)
{
pausa;
}
senão
{
if(err===4 || err==137 ||err==146 || err==136) //Busy errors
{
Sleep(5000);
continuar;
}
outro // erro normal
{
pausa;
}
}
}
}
if(type===OP_SELL)
{
for(c = 0 ; c < NumberOfTries ; c++)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,Bid-TakeProfit*Point,ExpertComment,MagicNumber,0,Red);
err=GetLastError();
if(err==0)
{
pausa;
}
senão
{
if(err===4 || err==137 ||err==146 || err==136) //Busy errors
{
Sleep(5000);
continuar;
}
outro // erro normal
{
pausa;
}
}
}
}
retorno(bilhete);
}
bool CloseOrder(tipo int)
{
if(OrderMagicNumber() == MagicNumber)
{
if(type===OP_BUY)
retornar (OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Violet));
if(type==OP_SELL)
retornar (OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Violet));
}
}
TrailOrder(tipo int) vazio
{
if(TrailingStop>0){
if(OrderMagicNumber() == MagicNumber)
{
if(type===OP_BUY)
{
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
}
}
}
if(type===OP_SELL)
{
if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
{
if((OrderStopLoss()>(Ask+Point*TrailingStop)) ||| (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
}
}
}
}
}
}
CheckError(int ticket, tipo string)
{
if(bilhete>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Imprimir(Tipo + " pedido aberto : ",OrderOpenPrice());
}
outra impressão ("Erro de abertura " + Tipo + " ordem : "Descrição do Erro(GetLastError()));
}
Bool AllowedPair(par de cordas)
{
bool resultado=falso;
para (int n = 0 ; n < ArraySize(LP); n+++)
{
if(Symbol() == LP[n])
{
resultado = verdadeiro;
}
}
retorno (resultado);
}