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
Ainda tentando adicionar um alerta sonoro a este indicador...... Alguém pode verificar o código para mim, pois ele não está funcionando?
//|
//|
//+------------------------------------------------------------------+
#property copyright "niva"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 White
#property indicator_color2 Red
extern bool Email_Enabled = false;
extern bool Alert_Enabled = true;
//---- input parameters
int CountBars=10000;
//---- buffers
double uptrend[];
double downtrend[];
bool AlertSent,EmailSent;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicator line
IndicatorBuffers(2);
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,217);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,218);
SetIndexBuffer(0,val1);
SetIndexBuffer(1,val2);
//----
return(0);
}
//+------------------------------------------------------------------+
//| AltrTrend_Signal_v2_2 |
//+------------------------------------------------------------------+
int start()
{
if (CountBars>=Bars) CountBars=Bars;
int i,shift,counted_bars=IndicatorCounted();
int uptrend, downtrend;
for (shift = CountBars; shift>=0; shift--)
{
if(High[shift-1]>High[shift]&&Low[shift-1]>Low[shift]&&uptrend!=3){
uptrend = uptrend+1;
downtrend=0;
}else if(High[shift-1]<High[shift]&&Low[shift-1]<Low[shift]&&downtrend!=3){
downtrend=downtrend+1;
uptrend=0;
}
else{
uptrend=0;
downtrend=0;
}
if (uptrend==3)
{
val1[shift]=Low[shift];
}
if (downtrend==3)
{
val2[shift]=High[shift];
}
}
return(0);
}
//----
if (Alert_Enabled && (uptrend[0] != 0 || uptrend[0] !=0) && !AlertSent)
{
Alert(Symbol() + "HiLow+3");
AlertSent=true;
}
if (Email_Enabled && (downtrend[0] != 0 || downtrend[0] !=0) && !EmailSent)
{
SendMail(Symbol() + "HiLow+3","HiLow+3 indicator triggered");
EmailSent=true;
}
if(downtrend[0] == 0 && uptrend[0] == 0 )
{
EmailSent=false;
AlertSent=false;
}
return(0);
}
//+------------------------------------------------------------------+Obrigado
Em algum lugar no código, os parênteses estão desequilibrados. Parece que em algum lugar a } e a ) estão faltando no código. Você precisará olhar e contar quantos parênteses abertos e fechados existem (+1 para aberto e -1 para fechado) que devem lhe dizer quantos estão faltando (digamos uma contagem de +2 significa dois parênteses à direita "}" ou vice-versa). Se ele recuou corretamente, você deve ser capaz de descobrir onde colocar o } correto. Feliz caçadaO
Consegui mudar algumas configurações e finalmente acredito estar quase lá! Agora, após a seguinte codificação, diz:
'shortSL' - variável não definida
longSL' - variável não definida
Aqui está o que parece:
//+------------------------------------------------------------------+
//| Salgado.mq4 |
//| salgadoguilherme@hotmail.com|
//| |
//+------------------------------------------------------------------+
#direitos de propriedade intelectual "".
#link da propriedade "salgadoguilherme@hotmail.com"
comércio externo de bool=verdadeiro;
bartocount externo=50;
lotes duplos externos=0,01;
StopLoss int externo =40;
Ext int TakeProfit =10;
deslize int externo=3;
número mágico int externo=816;
//+------------------------------------------------------------------+
//| função de iniciação de especialista |
//+------------------------------------------------------------------+
int init()
{
//----
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de desinicialização especializada |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de início especializado |
//+------------------------------------------------------------------+
int start()
{
//----
if(trade===verdadeiro)
{
//M15
duplo M15_resistance=iCustom(NULL,PERÍODO_M15,"!LinRegrBuf", "true",barstocount,2,0));
duplo M15_resistance_p=iCustom(NULL,PERÍODO_M15,"!LinRegrBuf", "true",barstocount,2,barstocount-1);
double M15_line=iCustom(NULL,PERÍODO_M15,"!LinRegrBuf", "true",barstocount,0,0);
duplo M15_support=iCustom(NULL,PERÍODO_M15,"!LinRegrBuf", "true",barstocount,1,0);
double slopeM15=((M15_resistance-M15_resistance_p)/barstocount)/Point;
//Alerta(DoubleToStr(slopeM15,2);
Comentário(
"M15 Slope M15", "slopeM15",
//SHORT ENTRY
if(slopeM15<0 && IsTradeAllowed()==verdadeiro)
{
bool shortopen=false;
int ord_cnt1=OrdensTotal();
for (int start1=0;start1<ord_cnt1;start1++)
{
OrderSelect(start1, SELECT_BY_POS, MODE_TRADES);
if(OrderMagicNumber()== número de ordem && OrderType()==OP_SELLL)
{shortopen=verdadeiro;}
}
if(shortopen==false)
{
duplo M15High=iHigh(Symbol(),PERÍODO_M15,0);
if(M15High>==M15_resistance)
int shortticket=OrderSend(Symbol(),OP_SELL,lots,Bid,slippage,Bid+shortSL,M15_line,DoubleToStr(slopeM15,2);
if(shortticket<0)
{
//LONG ENTRY
if(slopeM15>0 && IsTradeAllowed()==verdadeiro)
{
bool longopen=false;
int ord_cnt=OrdersTotal();
for (int start=0;start<ord_cnt;start++)
{
OrderSelect(start, SELECT_BY_POS, MODE_TRADES);
if(OrderMagicNumber()== número de ordem && OrderType()==OP_BUY)
{longopen=true;}
}
if(longopen==falso)
{
duplo M15Low=iLow(Symbol(),PERÍODO_M15,0);
if(M15Low<=M15_support)
int longticket=OrderSend(Symbol(),OP_BUY,lots,Ask,slippage,Ask-longSL,M15_line,DoubleToStr(slopeM15,2);
if(longticket<0)
{
//----
retorno(0);
}
//+------------------------------------------------------------------+
Fórmula Indy tipo vela
Hi,
Estou precisando muito de tutoriais de MQL sobre como codificar indicadores do tipo vela, tais como o gráfico anexo. Apenas os links para algum lugar dentro ou fora deste fórum estarão bem. Muito obrigado.
Piper.
Alguém poderia me dizer como codificar o seguinte;
Conte o número de barras desde que um MA de curto prazo cruzou um MA de longo prazo.
Obrigado!
Código EA para retomar as negociações após o fechamento.
Hi,
Existe algum código de amostra para uma EA, que possa retomar o gerenciamento dos negócios após sua parada e depois voltar novamente?
Obrigado,
JForex
Como codificar?
Alguém poderia me dizer como codificar o seguinte;
Conte o número de barras desde que um MA de curto prazo tenha atravessado um MA de longo prazo.
Obrigado!Sim!
Contar as barras desde que elas cruzaram:
int i;
bool shortGreater = (iMA(NULL,0,8,8,MODE_SMMA,PRICE_MEDIAN,0) > iMA(NULL,0,24,8,MODE_SMMA,PRICE_MEDIAN,0));
bool sgLast;
for(i=0;i<iBars(NULL,0);i++) {
sgLast = shortGreater;
shortGreater = (iMA(NULL,0,8,8,MODE_SMMA,PRICE_MEDIAN,i) > iMA(NULL,0,24,8,MODE_SMMA,PRICE_MEDIAN,i))
if(shortGreater !== sgLast) {
pausa;
}
}
A variável i conterá então o número de barras desde que elas cruzaram.
Sinta-se à vontade para me enviar algum dinheiro se você achar útil. Eu agradeceria.
Aqui está.
Consegui mudar algumas configurações e finalmente acredito estar quase lá! Agora, após a seguinte codificação, diz:
'shortSL' - variável não definida
longSL' - variável não definida
Aqui está. Eu peguei o que você fez e o modifiquei para que fosse compilado. Cuidado, sua lógica é ruim, parece incompleta, e provavelmente não fará o que você quer.
Mas lá vai você.
- ChazzMoney
P.S. $170 é EXTREMELMENTE barato para um programa. Eu escrevo software de investimento personalizado uma ou duas vezes por ano por cinco números. Os programadores que assumem este tipo de trabalho devem ter cuidado - você precisa verificar TUDO para ter certeza de que você não perde um caso. Um bug é tão bom quanto um comerciante aleatório.
Sinta-se à vontade para me enviar algum dinheiro se você o achar útil. Agradeço o pensamento.
código do ZigZag padrão
Hi
este código é da norma "ZigZag.mq4".
"se (counted_bars==0 && downloadhistory) // histórico foi baixado"
counted_bars==0 : verificando se o valor é igual a zero........ seu ok.
downloadhistory : não há verificação de condição por que ??? por favor, limpe isto
Obrigado.
Abrindo 2 ENCOMENDAS e Fechando 2 ENCOMENDAS...CONSISTENTEMENTE.
Há muito tempo eu venho tentando e TENTANDO fazer com que minha EA sempre abra dois pedidos para uma compra OU venda. Uma com TP e a outra com NONE. Depois de abrir 2 pedidos, então não abra mais tempo UNTIL para negociar em direção oposta.
Para ALGUM TEMPO, eu olho para o histórico da conta e vejo 1 ordem, depois 3 ordens, depois 4 chances, depois 2 ordens e está correndo como lixo.
QUALQUER Mestre de Codificação aqui pode dar uma olhada e me dar informações?
Obrigado VOCÊ!!!!!!!!!!!!!!!!
ENCOMENDAS ABERTAS
-------
BuyTicket1 = Falso;
BuyTicket2 = Falso;
enquanto (!BuyTicket1) {
BuyTicket1 = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLoss, Ask + TakeProfit * Ponto, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
Sleep(PausebetweenOrders * 1000);}
//if (BuyTicket1 && SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "]" + DoubleToStr(Ask, Digits) + " Open 1st Buy");
Sleep(1000);
enquanto (!BuyTicket2) {
BuyTicket2 = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLoss, 0, "2nd Buy(#" + MagicNumber + ")", MagicNumber, 0, BlueViolet);
Sleep(PausebetweenOrders * 1000);}
------------
ENCOMENDAS FECHADAS
------------
if(OrdersTotal() > 0) {
OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
if(OrderType() == OP_SELLL){
for (int j = OrdertotalCloseSell-1; j >= 0; j --) {
PositionClosedSell = False;
TentativasTentadoFechadoVendido = 0;
OrderSelect(j, SELECT_BY_POS, MODE_TRADES);
enquanto (!PositionClosedSell && AttemptsTriedCloseSell < CloseposnAttempts) {
AttemptsTriedCloseSell = AttemptsTriedCloseSell + 1;
OrderCloseSell = OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, MediumSeaGreen);
Sleep(PausebetweenOrders * 1000);
if( OrderCloseSell == Verdadeiro ) { // Posição Fechada com Sucesso.