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
Variável Dema definida incorretamente
Não sou capaz de definir corretamente a seção de Variáveis DEMA, suas sintaxes. Os códigos DEMA1, DEMA2, DEMA3 estão corretos.
Por favor, ajude a corrigir a seção de Variáveis DEMA.
se (TradeOrAlert) {
if (DEMA1)>(DEMA2) {CLOSESHORT(Symbol()) } ;}
if (DEMA1)<(DEMA2) {CLOSELONG(Symbol()) ;}
if ((DEMA1)>(DEMA2)) && ((DEMA2)>(DEMA3)) {BUY(Symbol(), B_Symbol_LS_0, B_Symbol_TP_0, B_Symbol_SL_0, B_Symbol_TS_0, "if ((DEMA1)>(DEMA2)) && ((DEMA2)>(DEMA3))";}
if ((DEMA1)<(DEMA2)) && ((DEMA2)<(DEMA3)) {SELL(Symbol(), S_Symbol_LS_0, S_Symbol_TP_0, S_Symbol_SL_0, S_Symbol_TS_0, "if ((DEMA1)<(DEMA2)) && ((DEMA2)<(DEMA3))";}
CheckTrailingStop(Symbol(), 0, MagicNumberLong, B_Symbol_TS_0);
CheckTrailingStop(Symbol(), 1, MagicNumberShort, S_Symbol_TS_0);
} else {
if (DEMA1)>(DEMA2) {MeuAlerta("if (DEMA1)>(DEMA2)", "CLOSESHORT(Símbolo(),0.1,100,15,17)", Símbolo());}
if (DEMA1)<(DEMA2) {MeuAlerta("if (DEMA1)<(DEMA2)", "CLOSELONG(Symbol(),0.1,100,15,17)", Symbol());}
if ((DEMA1)>(DEMA2)) && ((DEMA2)>(DEMA3)) {MeuAlerta("if ((DEMA1)>(DEMA2)) && ((DEMA2)>(DEMA3))", "BUY(Symbol(),0.1.100,15,17)", Symbol());}
if ((DEMA1)<(DEMA2)) && ((DEMA2)<(DEMA3)) {MeuAlerta("if ((DEMA1)<(DEMA2)) && ((DEMA2)<(DEMA3))", "SELL(Symbol(),0.1,100,15,17)", Symbol());}
}
g_bars_276 = Barras;
retorno (0);
}
//----DEMA VARIABLES----Não configurado corretamente, ajuda necessária-----
int init() {
duplo DEMA1 = (iMA(NULL,NULL,4,0,MODE_EMA,PRICE_CLOSE,0))*2 - (iMA(NULL,NULL,4,0,MODE_EMA,iMA(NULL,NULL,4,0,MODE_EMA,PRICE_CLOSE,0),0))
retorno(DEMA1);
}
int start() {
duplo DEMA2 = (iMA(NULL,NULL,6,0,MODE_EMA,PRICE_CLOSE,0))*2 - (iMA(NULL,NULL,6,0,MODE_EMA,iMA(NULL,NULL,6,0,MODE_EMA,PRICE_CLOSE,0),0))
retorno(DEMA2);
}
int start() {
duplo DEMA3 = (iMA(NULL,NULL,12,0,MODE_EMA,PRICE_CLOSE,0))*2 - (iMA(NULL,NULL,12,0,MODE_EMA,iMA(NULL,NULL,12,0,MODE_EMA,PRICE_CLOSE,0),0))
retorno(DEMA3);
}
//
Conjunto de variáveis Dema Incorretamente
Estou enfrentando o problema de definir as sintaxes corretamente na seção "DEMA VARIABLES" do código abaixo.
Também diga o que incluir após a seção "#include" com respeito às Variáveis Dema.
Eu recebo os erros
'DEMA1' - variável não definida.
'DEMA2' - variável não definida.
'DEMA3' - variável não definida.
Por favor, ajude.
if (TradeOrAlert) {
if (DEMA1)>(DEMA2) {CLOSESHORT(Symbol()) } ;}
if (DEMA1)<(DEMA2) {CLOSELONG(Symbol()) ;}
if ((DEMA1)>(DEMA2)) && ((DEMA2)>(DEMA3)) {BUY(Symbol(), B_Symbol_LS_0, B_Symbol_TP_0, B_Symbol_SL_0, B_Symbol_TS_0, "if ((DEMA1)>(DEMA2)) && ((DEMA2)>(DEMA3))";}
if ((DEMA1)<(DEMA2)) && ((DEMA2)<(DEMA3)) {SELL(Symbol(), S_Symbol_LS_0, S_Symbol_TP_0, S_Symbol_SL_0, S_Symbol_TS_0, "if ((DEMA1)<(DEMA2)) && ((DEMA2)<(DEMA3))";}
CheckTrailingStop(Symbol(), 0, MagicNumberLong, B_Symbol_TS_0);
CheckTrailingStop(Symbol(), 1, MagicNumberShort, S_Symbol_TS_0);
} else {
if (DEMA1)>(DEMA2) {MeuAlerta("if (DEMA1)>(DEMA2)", "CLOSESHORT(Símbolo(),0.1,100,15,17)", Símbolo());}
if (DEMA1)<(DEMA2) {MeuAlerta("if (DEMA1)<(DEMA2)", "CLOSELONG(Symbol(),0.1,100,15,17)", Symbol());}
if ((DEMA1)>(DEMA2)) && ((DEMA2)>(DEMA3)) {MeuAlerta("if ((DEMA1)>(DEMA2)) && ((DEMA2)>(DEMA3))", "BUY(Symbol(),0.1.100,15,17)", Symbol());}
if ((DEMA1)<(DEMA2)) && ((DEMA2)<(DEMA3)) {MeuAlerta("if ((DEMA1)<(DEMA2)) && ((DEMA2)<(DEMA3))", "SELL(Symbol(),0.1,100,15,17)", Symbol());}
}
g_bars_276 = Barras;
retorno (0);
}
//----DEMA VARIABLES----Não configurado corretamente, ajuda necessária-----
int start() {
duplo DEMA1 = (iMA(NULL,NULL,4,0,MODE_EMA,PRICE_CLOSE,0))*2 - (iMA(NULL,NULL,4,0,MODE_EMA,iMA(NULL,NULL,4,0,MODE_EMA,PRICE_CLOSE,0),0))
retorno(DEMA1);
}
int start() {
duplo DEMA2 = (iMA(NULL,NULL,6,0,MODE_EMA,PRICE_CLOSE,0))*2 - (iMA(NULL,NULL,6,0,MODE_EMA,iMA(NULL,NULL,6,0,MODE_EMA,PRICE_CLOSE,0),0))
retorno(DEMA2);
}
int start() {
duplo DEMA3 = (iMA(NULL,NULL,12,0,MODE_EMA,PRICE_CLOSE,0))*2 - (iMA(NULL,NULL,12,0,MODE_EMA,iMA(NULL,NULL,12,0,MODE_EMA,PRICE_CLOSE,0),0))
retorno(DEMA3);
}
//
Alerta MA+Stoch...por favor
você pode me ajudar a construir indicador : MA+stoch com alerta
stoch(5,3,3);MA(8);MA(15);MA(30)....
alerta quando MA(8)>MA(15)>MA(30) e %K cruzam acima de %D mas menos que o nível 50
alerta quando MA(8)<MA(15)<MA(30) e %D cruzam acima de %K mas mais do nível 50
muito obrigado
meu inglês é língua estrangeira
simpaticamente!
você pode me ajudar a construir indicador : MA+stoch com alerta
stoch(5,3,3);MA(8);MA(15);MA(30)....
alerta quando MA(8)>MA(15)>MA(30) e %K cruzam acima de %D mas menos que o nível 50
alerta quando MA(8)<MA(15)<MA(30) e %D cruzam acima de %K mas mais do nível 50
muito obrigado
meu inglês é língua estrangeira
simpaticamente!Hi,
código de um dos meus indis, você tem que adaptá-lo às suas necessidades:
bool externo AlertON=falso;
bool externo EmailON=verdadeiro;
bool externo SoundON=falso;
bool externo VoiceON=false;
bool externo SMSON=falso;
ExtSoundFileName = "";//arquivos de som externos necessários, do que excluir
FastMA = FastMAnow;
SlowMA = slowMAnow;
if ((fastMAnow >= slowMAnow) && (fastMAprevious < slowMAprevious))
{
se (i === 1 && flagval1==0)
{
flagval1=1;
flagval2=0;
if (AlertON===verdadeiro) Alerta("BUY signal at Ask=",Ask,"\n Bid=",Bid,"\n Time=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period());
if (EmailON===true) SendMail("2754 BUY-ALP EUR", "BUY signal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Símbolo="+Símbolo()+" Período="+Periodo());
if (SMSON===verdadeiro) SendMail("2754 BUY-ALP EUR", "BUY signal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Símbolo="+Símbolo()+" Período="+Periodo());
if (SoundON===verdadeiro) PlaySound(ExtSoundFileName);//peep etc
se (VoiceON===verdadeiro) PlaySound(ExtSoundFileName);// discurso próprio wav
}
CrossUp = Baixa - Alcance*0,5;
}
senão se ((fastMAnow slowMAprevious))
{
se (i === 1 && flagval2==0)
{
flagval2=1;
flagval1=0;
if (AlertON===verdadeiro) Alerta("SELL signal at Ask=",Ask,"\n Bid=",Bid,"\n Date=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period());
if (EmailON===true) SendMail("2754 SELL-ALP EUR", "SELL signal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Símbolo="+Símbolo()+" Período="+Periodo());
if (SMSON===verdadeiro) SendMail("2754 SELL-ALP EUR", "SELL signal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Símbolo="+Símbolo()+" Período="+Periodo());
if (SoundON===verdadeiro) PlaySound(ExtSoundFileName);//peeps etc
se (VoiceON===verdadeiro) PlaySound(ExtSoundFileName);// discurso próprio wav
}
CrossDown = Alto + Alcance*0,5;
}
}
retorno(0);
}
Alerta MA+Stoch...por favor
Hi,
código de um dos meus indis, você tem que adaptá-lo às suas necessidades:
bool externo AlertON=falso;
bool externo EmailON=verdadeiro;
bool externo SoundON=falso;
bool externo VoiceON=false;
bool externo SMSON=falso;
ExtSoundFileName = "";//arquivos de som externos necessários, do que excluir
FastMA = FastMAnow;
SlowMA = slowMAnow;
if ((fastMAnow >= slowMAnow) && (fastMAprevious < slowMAprevious))
{
se (i === 1 && flagval1==0)
{
flagval1=1;
flagval2=0;
if (AlertON===verdadeiro) Alerta("BUY signal at Ask=",Ask,"\n Bid=",Bid,"\n Time=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period());
if (EmailON===true) SendMail("2754 BUY-ALP EUR", "BUY signal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Símbolo="+Símbolo()+" Período="+Periodo());
if (SMSON===verdadeiro) SendMail("2754 BUY-ALP EUR", "BUY signal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Símbolo="+Símbolo()+" Período="+Periodo());
if (SoundON===verdadeiro) PlaySound(ExtSoundFileName);//peep etc
se (VoiceON===verdadeiro) PlaySound(ExtSoundFileName);// discurso próprio wav
}
CrossUp = Baixa - Alcance*0,5;
}
senão se ((fastMAnow slowMAprevious))
{
se (i === 1 && flagval2==0)
{
flagval2=1;
flagval1=0;
if (AlertON===verdadeiro) Alerta("SELL signal at Ask=",Ask,"\n Bid=",Bid,"\n Date=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period());
if (EmailON===true) SendMail("2754 SELL-ALP EUR", "SELL signal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Símbolo="+Símbolo()+" Período="+Periodo());
if (SMSON===verdadeiro) SendMail("2754 SELL-ALP EUR", "SELL signal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Símbolo="+Símbolo()+" Período="+Periodo());
if (SoundON===verdadeiro) PlaySound(ExtSoundFileName);//peeps etc
se (VoiceON===verdadeiro) PlaySound(ExtSoundFileName);// discurso próprio wav
}
CrossDown = Alto + Alcance*0,5;
}
}
retorno(0);
}Muito obrigado...ixbone
Eu escrevo código muito mal... Então, eu não consigo entender seu código.... você pode me ajudar a construir indicador(.mq4) a fim de usar
se for o caso, agradeço-lhe muito
desejo-lhe um bom dia de trabalho!
Como posso verificar se a barra atual é 2 pips maior do que as barras anteriores?
Desculpe o lugar errado para esta pergunta.
Favor excluir esta administração.
Obrigado!
Fechamento parcial de uma ordem
Hi,
Estou tentando codificar um EA que terá lucros em dois níveis. Para fazer isso, quero dividir a ordem original para que "x" lotes sejam retirados no primeiro alvo de lucro e os lotes restantes sejam retirados no segundo alvo de lucro. Para fazer isso, estou usando duas funções OrderClose().
A primeira função OrderClose() funciona perfeitamente, mas também parece fechar a ordem existente e gerar um novo bilhete para os lotes restantes.
Alguém poderia me dar alguma orientação sobre como lidar com este "novo" bilhete/ordem para que ele possa ser processado pela segunda função CloseOrder()?
Abraço
Jim
Hi,
Estou tentando codificar um EA que terá lucros em dois níveis. Para fazer isso, quero dividir a ordem original para que "x" lotes sejam retirados no primeiro alvo de lucro e os lotes restantes sejam retirados no segundo alvo de lucro. Para fazer isso, estou usando duas funções OrderClose().
A primeira função OrderClose() funciona perfeitamente, mas também parece fechar a ordem existente e gerar um novo bilhete para os lotes restantes.
Alguém poderia me dar alguma orientação sobre como lidar com este "novo" bilhete/ordem para que ele possa ser processado pela segunda função CloseOrder()?
Abraço
JimApenas uma idéia. Você pode tentar usar dois ofícios em vez de um se o fechamento parcial para obter lucro for mais difícil de conseguir. E administrar esses negócios por seu tempo aberto.
Hi,
Estou tentando codificar um EA que terá lucros em dois níveis. Para fazer isso, quero dividir a ordem original para que "x" lotes sejam retirados no primeiro alvo de lucro e os lotes restantes sejam retirados no segundo alvo de lucro. Para fazer isso, estou usando duas funções OrderClose().
A primeira função OrderClose() funciona perfeitamente, mas também parece fechar a ordem existente e gerar um novo bilhete para os lotes restantes.
Alguém poderia me dar alguma orientação sobre como lidar com este "novo" bilhete/ordem para que ele possa ser processado pela segunda função CloseOrder()?
Abraço
JimAs pessoas têm referências diferentes, eu gosto de usar o fechamento parcial porque há menos negócios a serem tratados pelo corretor.
Toda vez que ocorre o fechamento parcial, o corretor agirá como a ordem restante é uma nova ordem, portanto, atribua um novo bilhete. Mas realmente não importa, desde que seu próximo passo o método para identificar as negociações não seja baseado em tickets de ordem, ele pode ser baseado em lotes de ordem, ou você pode atribuir uma variável para indicar a EA quando o estágio estiver dentro.
O fechamento parcial é um pouco complicado de se lidar completamente corretamente se a seguinte situação existir:
1. Seus pedidos podem ser de lotes diferentes por causa do MM.
2. Você tem várias ordens existentes ao mesmo tempo de diferentes tamanhos de lote.
Se seu EA tem as situações acima e se você não tem experiência em codificação, acho que você pode usar a abordagem de pedidos múltiplos.
Solução rápida para problemas simples. Obrigado *você : )
Eu gostaria de retornar as seguintes variáveis :
1. O primeiro bar aberto da última segunda-feira registrada (Hour Bar).
2. O último bar preço de fechamento do último bar registrado na quarta-feira (Hour Bar).
Alguém sabe como fazer isso ? Eu tentei obter as variáveis à medida que elas passavam com :
//-------------------------------------------------------
se (dia atual == 1 && tempo atual == 0)
{
MondayOpenPrice = iOpen(Symbol(),PERIOD_H1,0);
}
//--------------------------------------------------------
O problema com o acima mencionado é que eu não posso manter meu metatarrader funcionando durante toda a semana para manter essas variáveis.
Portanto, vou precisar que a EA olhe para trás na história para o primeiro preço aberto registrado em uma segunda-feira, etc...
Muito obrigado pelo seu tempo.