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
Ajuda para a Expectativa Matemática Por favor
Olá
Pareço ter me espiado até certo ponto.
Estou tentando usar um formulário de expectativa dentro da minha EA Tenho o formulário 1-avgwin/avgloss* precisão do sistema+1 e isso funciona bem, mas gostaria de saber como calcular e exibir a diferença entre a Ordem e o StopLoss, por exemplo
OP_SELLSTOP 1.63406
StopLoss 1.63603
1,63406 - 1,63603 = -0,00197 Acho que este deve ser um número positivo.
Uma expectativa de 1,45
Portanto, para calcular o TakeProfit -0,00197 * 1,45 = -0,00285
Coloque TP em OP_SELLSTOP 1.63406 - 1.63121
e vice versa para a posição Longa
é tudo parte desta linha https://www.mql5.com/en/forum/178980 e se você der uma olhada na excel sheet você verá que estou quase lá.
Qualquer ajuda seria ótima.
Abraço Beno
Olá
Pareço ter me espiado até um certo ponto.
Estou tentando usar um formulário de expectativa dentro da minha EA Tenho o formulário 1-avgwin/avgloss* precisão do sistema+1 e isso funciona bem, mas gostaria de saber como calcular e exibir a diferença entre a Ordem e o StopLoss, por exemplo
OP_SELLSTOP 1.63406
StopLoss 1.63603
1,63406 - 1,63603 = -0,00197 Acho que este deve ser um número positivo.
Uma expectativa de 1,45
Portanto, para calcular o TakeProfit -0,00197 * 1,45 = -0,00285
Coloque TP em OP_SELLSTOP 1.63406 - 1.63121
e vice versa para a posição Longa
é tudo parte desta linha https://www.mql5.com/en/forum/178980 e se você der uma olhada na excel sheet você verá que estou quase lá.
Qualquer ajuda seria ótima.
Abraço BenoA maneira mais simples é não pensar sobre isso e usar:
MathAbs duplo (valor duplo)
MathAbs - Documentação MQL4
Cumprimentos
Oi CRN
Obrigado pela resposta, é isto que eu tenho tentado.
Acho que está certo, mas é só imprimir o PipSL 15769.68328362
12011.01.04 00:00sell stop10.011.542790.000000.000000.0010000.00
22011.01.07 08:20sell10.011.542790.000000.000000.000000.0010000.00
32011.01.07 08:20modify10.011.542791.577120.000000.0010000.00
42011.01.11 23:40close at stop10.011.560451.577120.00000-17.669982.34
e eu exijo a diferença real entre a venda e o SL
Alguém, por favor, me ajude.
Olá e Feliz Natal para todos.
Primeiramente sou recém-chegado a este fórum. Tenho problemas com o Ea e alguém pode consertar isso para mim? O problema é como definir este EA para o comércio real e o EA apenas cinza no meu comércio ao vivo.
Aqui o anexo :
spielershedge_library.mqh
spielershedge_pipstar.mq4
spielershedge_ea_v2.8.1.ex4
spielershedge_divergence_v5.1.ex4
-sem que fosse uma velha ea, mas acho que talvez possamos compartilhar e levar algo que nos beneficie a todos.
-Acabei de encontrar isto no sistema Hedge trading spieler derivado da negociação de spreads futuros - Página 193 @ Forex Factory ( SpielersHedge PipStar.mq4 ) e o resto do sistema Hedge trading spieler derivado da negociação de spreads futuros - Página 87 @ Forex Factory
-Desculpe pelo meu inglês ruim.
P/S : Sou muito grato pela lição, guias, comentários e críticas de todos vocês pelo meu aprimoramento. Eu acreditei que quanto mais damos nosso conhecimento, mais aprendemos.
Oi CRN
Obrigado pela resposta, é isto que eu tenho tentado.
Acho que está certo, mas é só imprimir o PipSL 15769.68328362
12011.01.04 00:00sell stop10.011.542790.000000.000000.0010000.00
22011.01.07 08:20sell10.011.542790.000000.000000.000000.0010000.00
32011.01.07 08:20modify10.011.542791.577120.000000.0010000.00
42011.01.11 23:40close at stop10.011.560451.577120.00000-17.669982.34
e eu exijo a diferença real entre a venda e o SLSe você precisar de uso real iClose(0,0,0)-OrderStopLoss().
mas primeiro selecione a ordem correta por OrderSelect;
Atenciosamente
Filtro de tempo com CloseAjuda Tudo Por favor
Gidday
Tenho um filtro de tempo trabalhando na EA, mas tenho tentado anexar um closeall a ele para que, se o tempo for igual ao close time, então feche todas as posições abertas
extern int gmtshift=1; // gmt offset of the broker
extern bool generalfilter=false; // enable time filter
extern int starthour=7; // start hour to trade after this hour
extern int startminutes=0; // minutes of the start hour
extern int endhour=21; // stop to trade after this hour
extern int endminutes=0; // minutes of the start hour
extern bool tradesunday=true; // trade on sunday
extern bool fridayfilter=false; // enable special time filter on friday
extern int fridayhour=21; // stop to trade after this hour
extern int fridayminutes=0; // minutes of the friday hour[/CODE]
[CODE]void start() {
if(generalfilter){
nstarthour=starthour+(gmtshift);if(nstarthour>23)nstarthour=nstarthour-24;
if(nstarthour<10)istarthour="0"+nstarthour;
if(nstarthour>9)istarthour=nstarthour;
if(startminutes<10)istartminutes="0"+startminutes;
if(startminutes>9)istartminutes=startminutes;
tstart=StrToTime(istarthour+":"+istartminutes);
nendhour=endhour+(gmtshift);if(nendhour>23)nendhour=nendhour-24;
if(endhour<10)iendhour="0"+nendhour;
if(endhour>9)iendhour=nendhour;
if(endminutes<10)iendminutes="0"+endminutes;
if(endminutes>9)iendminutes=endminutes;
tend=StrToTime(iendhour+":"+iendminutes);
}
if(fridayfilter){
nfridayhour=fridayhour+(gmtshift);if(nfridayhour>23)nfridayhour=nfridayhour-24;
if(nfridayhour<10)ifridayhour="0"+nfridayhour;
if(nfridayhour>9)ifridayhour=nfridayhour;
if(fridayminutes<10)ifridayminutes="0"+fridayminutes;
if(fridayminutes>9)ifridayminutes=fridayminutes;
tfriday=StrToTime(ifridayhour+":"+ifridayminutes);
}
if((generalfilter && (nstarthour<nendhour && TimeCurrent()tend) || (nstarthour>nendhour && TimeCurrent()tend))
|| (tradesunday==false && DayOfWeek()==0) || (fridayfilter && DayOfWeek()==5 && TimeCurrent()>tfriday))return(0);
if (TimeCurrent() >= tend) {
for (int i=OrdersTotal()-1; i>=0; i--) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==TradeSymbol) {
if (OrderType()==OP_BUY) {
pBid=MarketInfo(OrderSymbol(), MODE_BID);
OrderClose(OrderTicket(), OrderLots(), Bid, slippage, Yellow);
}
if (OrderType()==OP_SELL) {
pAsk=MarketInfo(OrderSymbol(), MODE_ASK);
OrderClose(OrderTicket(), OrderLots(), Ask, slippage, Orange);
}
}
}
}
}por favor, me ajude
extern int BuyStopTakeProfit=10;
extern int BuyStopSL=1000;
como codificar
se BuyStopTakeProfit Hit TakeProfit, Apagar todos os pedidos pendentes
por favor, qualquer um pode ajudar
Ajuda!!!! Por favor!!!! Função iCustom
Ajuda,
Tentei de tudo para que meu C_EA_rev6.mq4 ligasse para qualquer buffer do indicador personalizado VSATEXTSIGNALS.mq4. Usei a função iCustom, mas ela sempre retorna 2147483647, o que eu entendo ser um código de erro. O indicador personalizado coloca sinais de texto no gráfico com base em técnicas de análise de espalhamento de volume. O indicador personalizado funciona bem quando eu o anexei a um gráfico. Passei incontáveis horas tentando todas as combinações que conheço. Qualquer ajuda seria muito apreciada. Além disso, tenho uma pergunta, você pode usar a função iCustom em um indicador personalizado que chama um script ou arquivo .dll?
Veja os anexos para código para indicador e EA.
Obrigado,
cmfxtrader
Ajuda,
Tentei de tudo para que meu C_EA_rev6.mq4 ligasse para qualquer buffer do indicador personalizado VSATEXTSIGNALS.mq4. Usei a função iCustom, mas ela sempre retorna 2147483647, o que eu entendo ser um código de erro. O indicador personalizado coloca sinais de texto no gráfico com base em técnicas de análise de dispersão de volume. O indicador personalizado funciona bem quando eu o anexei a um gráfico. Passei incontáveis horas tentando todas as combinações que conheço. Qualquer ajuda seria muito apreciada. Além disso, tenho uma pergunta, você pode usar a função iCustom em um indicador personalizado que chama um script ou arquivo .dll?
Veja os anexos para código para indicador e EA.
Obrigado,
cmfxtraderOlá,
O problema é que enquanto você está tentando ler o buffer do indicador, ele emite mensagens de texto, que não são buffers. Por isso, você está recebendo 2147483647 valor que é VAZIO_VALOR não é um erro.
De qualquer forma, eu acho que você gostaria de automatizar os sinais deste indicador. Há uma solução simples para isso. O indicador é declarado como tendo 7 buffers (#property indicator_buffers 7) mas está usando apenas 5. Os indicadores podem usar no máximo 8 buffers. Isso significa que você pode declarar outro buffer adicional apenas para seus cálculos e preenchê-lo com mensagens identificadas. Você encontrará os números das mensagens na função TextOutput. Basta adicionar números ao seu buffer, dependendo de qual mensagem é exibida. Por exemplo, se o texto for : "UPTHRUST / Weakness_" então adicione 1 ao seu buffer, se a mensagem for PSEUDO UPTHRUST / Weakness_ então adicione 4 e assim por diante. O índice do buffer será o mesmo que o valor da variável "i".
Quanto a sua segunda pergunta: você pode sempre usar a função iCustom para um indicador (não script) e ler os valores se ela preencher os buffers declarados no indicador. Por exemplo, se este for um indicador que desenha linhas, então você pode ler os valores das linhas - porque para desenhar algo (exceto etiquetas) o indicador tem que preencher os buffers. Se o indicador estiver criando objetos gráficos (como aquele que você anexou) então você precisará: a) ler valores de objetos gráficos, ou b) recodificar o indicador (como eu sugeri acima). Não importa se o indicador está usando DLL ou não - basta preencher adequadamente o buffer para ler seus valores a partir da função iCustom.
Gidday
Tenho um filtro de tempo trabalhando na EA, mas tenho tentado anexar um closeall a ele para que, se o tempo for igual ao close time, então feche todas as posições abertas
extern int gmtshift=1; // gmt offset of the broker
extern bool generalfilter=false; // enable time filter
extern int starthour=7; // start hour to trade after this hour
extern int startminutes=0; // minutes of the start hour
extern int endhour=21; // stop to trade after this hour
extern int endminutes=0; // minutes of the start hour
extern bool tradesunday=true; // trade on sunday
extern bool fridayfilter=false; // enable special time filter on friday
extern int fridayhour=21; // stop to trade after this hour
extern int fridayminutes=0; // minutes of the friday hour[/CODE]
[CODE]void start() {
if(generalfilter){
nstarthour=starthour+(gmtshift);if(nstarthour>23)nstarthour=nstarthour-24;
if(nstarthour<10)istarthour="0"+nstarthour;
if(nstarthour>9)istarthour=nstarthour;
if(startminutes<10)istartminutes="0"+startminutes;
if(startminutes>9)istartminutes=startminutes;
tstart=StrToTime(istarthour+":"+istartminutes);
nendhour=endhour+(gmtshift);if(nendhour>23)nendhour=nendhour-24;
if(endhour<10)iendhour="0"+nendhour;
if(endhour>9)iendhour=nendhour;
if(endminutes<10)iendminutes="0"+endminutes;
if(endminutes>9)iendminutes=endminutes;
tend=StrToTime(iendhour+":"+iendminutes);
}
if(fridayfilter){
nfridayhour=fridayhour+(gmtshift);if(nfridayhour>23)nfridayhour=nfridayhour-24;
if(nfridayhour<10)ifridayhour="0"+nfridayhour;
if(nfridayhour>9)ifridayhour=nfridayhour;
if(fridayminutes<10)ifridayminutes="0"+fridayminutes;
if(fridayminutes>9)ifridayminutes=fridayminutes;
tfriday=StrToTime(ifridayhour+":"+ifridayminutes);
}
if((generalfilter && (nstarthour<nendhour && TimeCurrent()tend) || (nstarthour>nendhour && TimeCurrent()tend))
|| (tradesunday==false && DayOfWeek()==0) || (fridayfilter && DayOfWeek()==5 && TimeCurrent()>tfriday))return(0);
if (TimeCurrent() >= tend) {
for (int i=OrdersTotal()-1; i>=0; i--) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==TradeSymbol) {
if (OrderType()==OP_BUY) {
pBid=MarketInfo(OrderSymbol(), MODE_BID);
OrderClose(OrderTicket(), OrderLots(), Bid, slippage, Yellow);
}
if (OrderType()==OP_SELL) {
pAsk=MarketInfo(OrderSymbol(), MODE_ASK);
OrderClose(OrderTicket(), OrderLots(), Ask, slippage, Orange);
}
}
}
}
}tente verificar esta parte:
if((generalfilter && (nstarthour<nendhour && TimeCurrent()tend) ||| (nstarthour>nendhour && TimeCurrent()tend)))
||| (comercializa domingo==falso && DayOfWeek()==0) || (fridayfilter && DayOfWeek()==5 && TimeCurrent()>tfriday))return(0);
a outra parte do código poderia ser mais fácil, mas deveria estar funcionando.
Entretanto, se você sair do script antes de fechar toda a parte, então ele não funcionará, e parece que o script está fazendo isso.
Dê uma olhada nesta parte, por exemplo:
(fridayfilter && DayOfWeek()==5 && TimeCurrent()>tfriday) return(0);
Em inglês significa: se é sexta-feira, e o filtro de sexta-feira está ligado, e o TimeMark foi passado (por exemplo, o tempo final é 18,00 e é 18,01) então return(0).
Deve ser: se for sexta-feira, e o filtro de sexta-feira estiver ligado, e o TimeMark foi passado FECHADO TODOS e (ex. hora final é 18.00 e é 18.01) então retorne(0).