Ajuda na codificação - página 405

 
Tomcat98:
Olá, Mladen,

Aqui está o que o loop diz para aquelas ordens pendentes onde Multi_Indic_00 é um oscilador e Up_Prime_00 é um nível definido.

//+--------------------------------------------------------------------+

//---- Verificar e fechar se o tipo de pedido é limitado e se a tendência mudou.

if(OrderType()==OP_BUYLIMIT)

if((( Multi_Indic_00 ) <= (Up_Prime_00 ))

{

_OrderDelete=OrderDelete(OrderTicket()));

}

if(OrderType()==OP_SELLLIMIT)

if((( Multi_Indic_00 ) >= ( Down_Prime_00 ))

{

_OrderDelete=OrderDelete(OrderTicket()));

}

//+--------------------------------------------------------------------+

Bem, nada de especial....

Feliz negociação.

Sinceramente.

Tomcat98

Tomcat98

O que eu gostaria de ver é a declaração para() loop statement. Se você está tendo uma declaração como esta :

para (int i = 0; i < OrderTotal(); i++)

então algumas ordens não serão atendidas se, entretanto, algumas ordens tiverem sido fechadas ou excluídas. Por outro lado, se o loop for() for assim :

para (int i = OrderTotal()-1; i >= 0; i--)

então processará todos os pedidos

 

Mladen ,

Oh, estou vendo:

Aqui está ele para o processo de fechamento:

"

for(int i=0;i<OrdersTotal();i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==falso) break;

if(OrderMagicNumber()!=MAGIC || OrderSymbol()!=Symbol()) continua;

"

Tomcat98

 
Tomcat98:
Mladen ,

Oh, estou vendo:

Aqui está ele para o processo de fechamento:

"

for(int i=0;i<OrdersTotal();i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==falso) break;

if(OrderMagicNumber()!=MAGIC || OrderSymbol()!=Symbol()) continua;

"

Tomcat98

Tomcat98

Mude o laço para

for(int i=OrdensTotal()-1;i>=0;i--)

e deve estar tudo bem

 

Mladen,

Bingo!

Agora ele faz exatamente o que eu precisava.

Muito obrigado por sua grande ajuda.

"As pessoas não se importam com o quanto você sabe até saberem o quanto você se importa".

- Theodore Roosevelt

Sinceramente.

Tomcat98

 
Tomcat98:
Mladen,

Bingo!

Agora ele faz exatamente o que eu precisava.

Muito obrigado por sua grande ajuda.

"As pessoas não se importam com o quanto você sabe até saberem o quanto você se importa".

- Theodore Roosevelt

Sinceramente.

Tomcat98

Feliz codificação

 

Olá Mladen, obrigado por tudo, trabalhando bem lá agora...

agora estou preso com um indicador criado que não está recarregando, então toda vez que uma vela se fecha tenho que recarregar o indicador, você pode me ajudar a consertar isso?? aqui está parte do código (é um indicador de tendência baseado em lacunas simples idéia, obrigado:

#direitos autorais "Copyright © 2014 Daniel Luchinger"

#link de propriedade

#propriedade rigorosa

#propriedade rigorosa

#janela_do_cartão_indicador de propriedade

#property indicator_buffers 4

#indicador de propriedade_color1 clrLime

#indicador de propriedade_color2 clrRed

#indicador de propriedade_color3 clrMagenta

#indicador de propriedade_color4 clrCyan

#define BUY 1

#define SELL 2

compra dupla[],

Vender[],

FirstBuy[],

FirstSell[];

int OnInit() {

SetIndexBuffer(0,FirstBuy);

SetIndexBuffer(1,FirstSell);

SetIndexBuffer(2,Buy);

SetIndexBuffer(3,Vender);

for(int i=0; i<4; i++) {

SetIndexStyle (i,DRAW_ARROW,STYLE_SOLID,2);}

SetIndexArrow (0,233);

SetIndexArrow (1.234);

SetSetaIndexArrow (2.233);

SetSetaIndexSeta (3.234);

return(INIT_SUCCEED); }

void OnDeinit(const int reason) {}

int OnCalculate(const int taxas_total, const int prev_calculado, const const datatime &time[],

const double &open[], const double &high[], const double &low[],

const double &close[], const long &tick_volume[], const long &volume[],

const int &spread[]) {

estática no últimoSinal=0;

for(int i=MathMin(rates_total-prev_calculado, rates_total-1); i>=0; i--) {

FirstBuy=FirstSell=Buy=Buy=Sell=EMPTY_VALUE;

data/hora quando=Tempo;

if((High-Close)<0) {

if(lastSignal==SELLL) {

FirstBuy=Fechar;

SoundAlert(quando, "Comprar");}

lastSignal=BUY;}

if((Low-Close)>0){

if(lastSignal==BUY) {

FirstSell=Close;

SoundAlert(quando, "Sell");}

lastSignal=SELLL;}

}

return(rates_total);}

void SoundAlert(data hora i, string dir) {

data estática hora últimoAlerta=0;

if(lastAlert!=i) {

Alerta(StringFormat("sinal %s em %s a %s",dir,Symbol(),TimeToStr(i)))

 
daniel1983:
Olá Mladen, obrigado por tudo, trabalhando bem lá agora...

agora estou preso com um indicador criado que não está recarregando, então toda vez que uma vela se fecha tenho que recarregar o indicador, você pode me ajudar a consertar isso?? aqui está parte do código (é um indicador de tendência baseado em lacunas simples idéia, obrigado:

#direitos autorais "Copyright © 2014 Daniel Luchinger"

#link de propriedade

#propriedade rigorosa

#propriedade rigorosa

#janela_do_cartão_indicador de propriedade

#property indicator_buffers 4

#indicador de propriedade_color1 clrLime

#indicador de propriedade_color2 clrRed

#indicador de propriedade_color3 clrMagenta

#indicador de propriedade_color4 clrCyan

#define BUY 1

#define SELL 2

compra dupla[],

Vender[],

FirstBuy[],

FirstSell[];

int OnInit() {

SetIndexBuffer(0,FirstBuy);

SetIndexBuffer(1,FirstSell);

SetIndexBuffer(2,Buy);

SetIndexBuffer(3,Vender);

for(int i=0; i<4; i++) {

SetIndexStyle (i,DRAW_ARROW,STYLE_SOLID,2);}

SetIndexArrow (0,233);

SetIndexArrow (1.234);

SetSetaIndexArrow (2.233);

SetSetaIndexSeta (3.234);

return(INIT_SUCCEED); }

void OnDeinit(const int reason) {}

int OnCalculate(const int taxas_total, const int prev_calculado, const const datatime &time[],

const double &open[], const double &high[], const double &low[],

const double &close[], const long &tick_volume[], const long &volume[],

const int &spread[]) {

estática no últimoSinal=0;

for(int i=MathMin(rates_total-prev_calculado, rates_total-1); i>=0; i--) {

FirstBuy=FirstSell=Buy=Buy=Sell=EMPTY_VALUE;

data/hora quando=Tempo;

if((High-Close)<0) {

if(lastSignal==SELLL) {

FirstBuy=Fechar;

SoundAlert(quando, "Comprar");}

lastSignal=BUY;}

if((Low-Close)>0){

if(lastSignal==BUY) {

FirstSell=Close;

SoundAlert(quando, "Sell");}

lastSignal=SELLL;}

}

return(rates_total);}

void SoundAlert(data hora i, string dir) {

data estática hora últimoAlerta=0;

if(lastAlert!=i) {

Alerta(StringFormat("sinal %s em %s a %s",dir,Symbol(),TimeToStr(i)))

daniel1983

Experimente assim :

#property copyright "Copyright © 2014 Daniel Luchinger"

#property link ""

#property strict

#property strict

#property indicator_chart_window

#property indicator_buffers 4

#property indicator_color1 clrLime

#property indicator_color2 clrRed

#property indicator_color3 clrMagenta

#property indicator_color4 clrCyan

#define BUY 1

#define SELL 2

double Buy[],

Sell[],

FirstBuy[],

FirstSell[];

int OnInit() {

SetIndexBuffer(0,FirstBuy);

SetIndexBuffer(1,FirstSell);

SetIndexBuffer(2,Buy);

SetIndexBuffer(3,Sell);

for(int i=0; i<4; i++) {

SetIndexStyle (i,DRAW_ARROW,STYLE_SOLID,2);}

SetIndexArrow (0,233);

SetIndexArrow (1,234);

SetIndexArrow (2,233);

SetIndexArrow (3,234);

return(INIT_SUCCEEDED);}

void OnDeinit(const int reason) {}

int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[],

const double &open[], const double &high[], const double &low[],

const double &close[], const long &tick_volume[], const long &volume[],

const int &spread[]) {

static int lastSignal=0;

for(int i=MathMin(rates_total-prev_calculated, rates_total-2); i>=0; i--)

{

FirstBuy=FirstSell=Buy=Sell=EMPTY_VALUE;

datetime when=Time;

if((High-Close)<0) {

if(lastSignal==SELL) {

FirstBuy=Close;

SoundAlert(when,"Buy");}

lastSignal=BUY;}

if((Low-Close)>0){

if(lastSignal==BUY) {

FirstSell=Close;

SoundAlert(when,"Sell");}

lastSignal=SELL;}

}

return(rates_total);

}

void SoundAlert(datetime i, string dir) {

static datetime lastAlert=0;

if(lastAlert!=i) {

Alert(StringFormat("%s signal on %s at %s",dir,Symbol(),TimeToStr(i)));

}

}

 

Olá Mladen, obrigado, mas escrevendo o código desta forma, faltam sinais, por favor, dê uma olhada que eu fiz uma foto comparando-os no gráfico diário USDJPY:

O que pode ser isto?

Arquivos anexados:
 
daniel1983:
Olá Mladen, obrigado, mas escrevendo o código desta forma, faltam sinais, por favor, dê uma olhada que eu fiz uma foto comparando-os no gráfico diário USDJPY:

O que pode ser isto?

daniel1983

Em seu código você usou valores futuros (estes :

High-Close

Low-Close

Usei Close - que é um valor normal anterior. Mude-o para mas depois repintará

 

Prezados mrtools e mladen

Alguém pode ajudar? Tom Demark Moving Average é um indicador chave dentro da minha estratégia, entretanto, um alarme seria muito útil para quando uma nova prateleira é indicada; eu ficaria muito grato se um alarme pudesse ser codificado no indicador. Aguardo com expectativa a sua gentil assistência.

Muito obrigado.

Arquivos anexados: