Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 236
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
... todos os pares de moedas onde o USD está presente ...
Não há cálculo de"margem utilizada dos fundos de comércio" no código ... e ao final do meu primeiro posto notei"mudar a visão da moeda de depósito no testador não resolve o problema".
Não há cálculo de"margem utilizada dos fundos de comércio" no código ... e ao final do meu primeiro posto notei"a troca do tipo de moeda de depósito no testador não resolve o problema".
Então meus poderes telepáticos estão terminados - estabeleça o código.
Desculpe a pergunta, sei como inserir um indicador externo em um EA usando um buffer... Mas não há tampão neste indicador, como obter o preço superior e inferior.
//+------------------------------------------------------------------+
//| trendlinesDay.mq4 |
//| Copyright © 2008, MetaQuotes Software Corp. |
//| https://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "nsi2000"
#property link "http://www.expert-mt4.nm.ru"
//----
#property indicator_chart_window
//---- input parameters
extern int nPeriod=10;
extern int Limit=350;
double Up[];
double Dn[];
///---- int Widners Oscilator
int cnt,nCurBar=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- Output in Char
for(cnt=0; cnt<=5; cnt++)
{
ObjectCreate("WSO-"+cnt,OBJ_HLINE,0,0,0);
ObjectSet("WSO-"+cnt,OBJPROP_COLOR,Red);
if(cnt<5)
{
ObjectCreate("Trend DN-"+cnt,OBJ_TREND,0,0,0,0,0);
ObjectSet("Trend DN-"+cnt,OBJPROP_COLOR,Magenta);
}
//----
ObjectCreate("WRO-"+cnt,OBJ_HLINE,0,0,0);
ObjectSet("WRO-"+cnt,OBJPROP_COLOR,Blue);
if(cnt<5)
{
ObjectCreate("Trend UP-"+cnt,OBJ_TREND,0,0,0,0,0);
ObjectSet("Trend Up-"+cnt,OBJPROP_COLOR,Aqua);
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//---- TODO: add your code here
for(cnt=0; cnt<=5; cnt++)
{
ObjectDelete("Trend UP-"+cnt);
ObjectDelete("Trend DN-"+cnt);
ObjectDelete("WSO-"+cnt);
ObjectDelete("WRO-"+cnt);
}
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
//---- TODO: add your code here
double r1,r2,r3,r4,r5,r6;
int rt1,rt2,rt3,rt4,rt5,rt6;
double s1,s2,s3,s4,s5,s6;
int st1,st2,st3,st4,st5,st6;
//---- Линии сопротивления и поддержки
if(Bars<Limit) Limit=Bars-nPeriod;
for(nCurBar=Limit; nCurBar>0; nCurBar--)
{
if(Low[nCurBar+(nPeriod-1)/2]==Low[Lowest(NULL,0,MODE_LOW,nPeriod,nCurBar)])
{
s6=s5; s5=s4; s4=s3; s3=s2; s2=s1; s1=Low[nCurBar+(nPeriod-1)/2];
st6=st5; st5=st4; st4=st3; st3=st2; st2=st1; st1=nCurBar+(nPeriod-1)/2;
}
if(High[nCurBar+(nPeriod-1)/2]==High[Highest(NULL,0,MODE_HIGH,nPeriod,nCurBar)])
{
r6=r5; r5=r4; r4=r3; r3=r2; r2=r1; r1=High[nCurBar+(nPeriod-1)/2];
rt6=rt5; rt5=rt4; rt4=rt3; rt3=rt2; rt2=rt1; rt1=nCurBar+(nPeriod-1)/2;
}
}
//---- Move Object in Chart
ObjectMove("Trend DN-0",1,Time[st1],s1);
ObjectMove("Trend DN-0",0,Time[st2],s2);
//----
ObjectMove("Trend UP-0",1,Time[rt1],r1);
ObjectMove("Trend UP-0",0,Time[rt2],r2);
//----
return(0);
}
//+------------------------------------------------------------------+
Desculpe a pergunta, sei como inserir um indicador externo em um EA usando um buffer... Neste indicador não há tampão, como obter o preço superior e inferior
Pegue objetos gráficos no gráfico com nomes "Trend DN-0", "Trend UP-0". (aquelas linhas que indicam alguns níveis do indicador) e ler os dados desejados a partir delas
no gráfico, tomar objetos gráficos com os nomes "Trend DN-0", "Trend UP-0". (aquelas linhas com as quais o indicador marca alguns níveis) e ler os dados necessários a partir delas
por favor, escreva como fazer isso no próprio indicador? e depois faça 2 buffers desses valores para usá-los na EA?
Escreva em que lugar tomar o preço?
por favor, escreva como fazer isso no próprio indicador? e depois faça 2 buffers desses valores para usá-los na EA?
escrever em que lugar tomar o preço?
O indicador já tem todos os dados para calcular dois amortecedores e extraí-los.
E você não sugeriu mudar o indicador, mas ler os dados das linhas traçadas pelo indicador do Consultor Especialista.
Entretanto, isto impõe restrições ao uso do testador - somente no modo visual você poderá testar o Expert Advisor.
O indicador já tem todos os dados para calcular os dois amortecedores e desenhá-los.
E não lhe foi sugerido alterar o indicador, mas ler os dados das linhas traçadas pelo indicador do Consultor Especialista.
Entretanto, isto impõe limitações ao uso do testador - você só poderá testar o Expert Advisor em modo visual.
Isso significa que eu deveria escrever no indicador
#property indicator_buffers 2
BufferUp duplo[], BufferDn[];
int OnInit()
{
SetIndexBuffer(0, BufferUp)
SetIndexBuffer(1, BufferDn)
}
E depois especificamente com o quê? Tenho que ligar estes 2 amortecedores?
Portanto, tenho que escrever no indicador
#property indicator_buffers 2
BufferUp duplo[], BufferDn[];
int OnInit()
{
SetIndexBuffer(0, BufferUp)
SetIndexBuffer(1, BufferDn)
}
E então exatamente com o quê? Tenho que ligar estes 2 amortecedores?
Veja: você tem linhas movendo-se em seu código:
Tempo[st1], Tempo[st2] e o preço destes pontos de referência s1, s2 são para uma linha,
Tempo[rt1], Tempo[rt2], r1, r2 - para outra linha.
Usando a equação de linha você pode calcular o valor do buffer para cada barra entre estes pontos e escrever este valor no buffer.
Veja: você tem linhas movendo-se em seu código:
Temos Tempo[st1], Tempo[st2] e o preço destes pontos s1, s2 - para uma linha,
Tempo[rt1], Tempo[rt2], r1, r2 - para outra linha.
Usando a equação de linha você pode calcular o valor do buffer para cada barra entre estes pontos e escrever este valor no buffer.
por isso não se pode simplesmente tomar o preço da linha sobre o bar. Não sei como calcular a equação da linha reta, se possível, escrever como tudo deve ficar.
E, em geral, o valor não deve ser tomado entre pontos, mas acima de 0 ou 1 barra