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
...
Você tem que fazer 2 coisasDepois disso, você terá algo assim:
Tenha um bom fim de semana
#janela_indicadora de propriedade_separarate_window
#property indicator_buffers 1
#indicador de propriedade_cores1 Vermelho
#indicador de propriedade_máximo 100
#indicador de propriedade_nível1 70
#indicador de propriedade_nível2 50
#indicador de propriedade_nível3 30
#indicador de propriedade_mínimo 0
//---- parâmetros de entrada
período de int. externo = 14 ;
int externo Período curto = 5 ;
Interior externo Período médio = 8;
int externo Longo período = 13;
int externo mamodio = 2 ;
//---- buffers
duplo RSI[];
duplo ShortRSI[];
duplo MiddleRSI[]; duplo MiddleRSI[];
duplo LongRSI[]; duplo LongRSI[];
duplo SMRSI[]; duplo SMRSI[];
período int ;
//+------------------------------------------------------------------+
//| Função de inicialização do indicador personalizado |
//+------------------------------------------------------------------+
int init()
{
//---- indicadores
IndicatorBuffers(5);
SetIndexBuffer(0,SMRSI);
SetIndexBuffer(1,RSI);
SetIndexBuffer(2,ShortRSI);
SetIndexBuffer(3,MiddleRSI); SetIndexBuffer(3,MiddleRSI);
SetIndexBuffer(4,LongRSI); SetIndexBuffer(4,LongRSI);
//---- nome para DataWindow e subwindow label do indicador
IndicatorShortName("SMRSI("+rsiperiod+", "+Shortperiod+", "+Middleperiod+", "+Longperiod +", "+mamode+")");
SetIndexDrawBegin(0,rsiperiodo+Longperiodo);
período=Curtoperíodo+Médioperíodo+Longoperíodo;
return(0);
}
//+------------------------------------------------------------------+
//| Função de iteração de indicador personalizada |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
int i,limit;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limite = Barras_contadas_barras;
for( i=limite; i>=0; i--) RSI=iRSI(NULL,0,rsiperiodo,0,i);
for( i=limite; i>=0; i--) ShortRSI=iMAOnArray(RSI,0,curto-período,0,mamode,i);
for( i=limit; i>=0; i--) MiddleRSI=iMAOnArray(RSI,0,Middleperiod,0,mamode,i);
for( i=limit; i>=0; i--) LongRSI=iMAOnArray(RSI,0,Longperiod,0,mamode,i);
for( i=limit; i>=0; i--) { if(period!=0) SMRSI=(Shortperiod/period)*ShortRSI+(Middleperiod/period)*MiddleRSI+(Longperiod/period)*LongRSI;}
retorno(0);
}
//+------------------------------------------------------------------+n_n
Você tem que fazer 2 coisas
Depois disso, você terá algo assim:
Tenha um bom fim de semanaObrigado!
Hi,
eu baixei o indicador anexado no site mql4. Tento fazer um EA baseado neste indicador, mas quando começo o backtest após alguns segundos as plataformas caem e acho que é uma falha do indicador porque ele está usando muito cpu.
Portanto, estou perguntando se é possível aliviar o código para resolver este problema.
Obrigado por sua disponibilidade.
cronex_taichi.mq4
dasio
Testei-o com este trecho, e funciona bem. Eu não sei os parâmetros que você usou, então isto é apenas um indicador padrão, mas não há problema desta forma
{
return(0);
}
int start()
{
Comment(iCustom(NULL,0,"Cronex Taichi",0,0));
return(0);
}
Hi,
eu baixei o indicador anexado no site mql4. Tento fazer um EA baseado neste indicador, mas quando começo o backtest após alguns segundos as plataformas caem e acho que é uma falha do indicador porque ele está usando muito cpu.
Portanto, estou perguntando se é possível aliviar o código para resolver este problema.
Obrigado por sua disponibilidade.
cronex_taichi.mq4dasio
Testei-o com este trecho, e funciona bem. Eu não sei os parâmetros que você usou, então isto é apenas um indicador padrão, mas não há problema desta forma
{
return(0);
}
int start()
{
Comment(iCustom(NULL,0,"Cronex Taichi",0,0));
return(0);
}
Obrigado, por sua resposta,
O que eu vejo é que na história o indicador foi carregado repetidamente, então eu movo o código de icustom apenas em um evento de vela nova, mas o problema ainda persiste.
Eu não sei por quê.
No entanto, obrigado por sua disponibilidade.
Hi,
encontrei o problema. Agora está tudo bem.
Eu tenho outro problema com outra ea.
Eu tenho este dois códigos e a função Lotti() seria me devolver o número do lote para um pedido.
Ao compilá-lo, recebo Posizioni Internal Error. O que está errado? Obrigado;
{
int intCount=0;
int intPOS=0;
bool boolTerm=false;
while(boolTerm==false)
{
if(OrderSelect(intPOS,SELECT_BY_POS))
{
if(OrderMagicNumber()==intMagic) intCount++;
intPOS++;
}
else
boolTerm=true;
}
return(intCount);
}
[/PHP]
[PHP]int Lotti(){
int Lotti;
int Posizioni=OTBM(MagicNumber);
switch (Posizioni)
{
case 0 : Lotti=0.1; break;
case 1 : Lotti=0.2; break;
case 2 : Lotti=0.4; break;
case 3 : Lotti=0.8; break;
case 4 : Lotti=1.6; break;
case 5 : Lotti=3.2; break;
case 6 : Lotti=6.4; break;
case 7 : Lotti=12.8; break;
}
return(Lotti);
}Tente substituir OTBM() por este :
{
int intCount=0;
for (int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS))
{
if(OrderMagicNumber()==intMagic) intCount++;
}
}
return(intCount);
}
[/PHP]
Hi,
i found the problem. Now all its ok.
I have another problem with another ea.
I have this two code and the function Lotti() would be return me the number of lot for an ordersend.
When i compile it i receive Posizioni Internal Error. What's wrong? Thank you;
{
int intCount=0;
int intPOS=0;
bool boolTerm=false;
while(boolTerm==false)
{
if(OrderSelect(intPOS,SELECT_BY_POS))
{
if(OrderMagicNumber()==intMagic) intCount++;
intPOS++;
}
else
boolTerm=true;
}
return(intCount);
}
[PHP]int Lotti(){
int Lotti;
int Posizioni=OTBM(MagicNumber);
switch (Posizioni)
{
case 0 : Lotti=0.1; break;
case 1 : Lotti=0.2; break;
case 2 : Lotti=0.4; break;
case 3 : Lotti=0.8; break;
case 4 : Lotti=1.6; break;
case 5 : Lotti=3.2; break;
case 6 : Lotti=6.4; break;
case 7 : Lotti=12.8; break;
}
return(Lotti);
}Hi, -.-"
Eu não encontro paz com estes códigos eheheh.
Tenho um problema com uma função que tem que me resultar no lucro de toda ordem aberta, mas acho que não é trabalho porque a condição nunca foi respeitada. Abaixo do código:
if(Profit()>=0.....[/PHP]
[PHP]double Profit()
{
int total=OrdersTotal();
double profit=0;
for(int i=0; i<total; i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) continue;
profit+=OrderProfit();
}
return(profit);
}dasio
Tente assim :
if(Profit()>=0.....[/PHP]
{
int total=OrdersTotal();
double profit=0;
for(int i=0; i<total-1; i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber) continue;
profit+=OrderProfit();
}
return(profit);
}[/PHP]
Hi, -.-"
I do not find peace with these codes eheheh.
I have a problem with a function that have to result me the profit of all openorder but i think it's not work because the condition never been respected. Below the code:
[PHP].....
if(Profit()>=0.....[PHP]double Profit()
{
int total=OrdersTotal();
double profit=0;
for(int i=0; i<total; i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) continue;
profit+=OrderProfit();
}
return(profit);
}dasio
Tente assim :
if(Profit()>=0.....[/PHP]
[PHP]double Profit()
{
int total=OrdersTotal();
double profit=0;
for(int i=0; i<total-1; i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber) continue;
profit+=OrderProfit();
}
return(profit);
}Desta forma eu verifico o pedido que não é aberto com um número mágico especificado, certo? Preciso verificar o pedido com um símbolo específico e um número mágico. Não sei se é importante, mas encontrei o erro no testador de estratégia.