Como codificar? - página 176

 

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.

Arquivos anexados:
 

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.

Arquivos anexados:
 
chiwing:
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?

obrigado

Use 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

Arquivos anexados:
how_to_code.jpg  134 kb
 

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

Calvon:
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);

}

 
Razão: