Aiuto per la codifica - pagina 405

 
Tomcat98:
Ciao Mladen,

Ecco cosa dice il ciclo per quegli ordini pendenti in cui Multi_Indic_00 è un oscillatore e Up_Prime_00 è un livello di definizione.

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

//---- Controlla e chiudi se il tipo di ordine è Limite e la tendenza è cambiata.

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());

}

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

Beh, niente di speciale....

Buon trading.

Cordiali saluti.

Tomcat98

Tomcat98

Quello che vorrei vedere è l'istruzione del ciclo for(). Se hai un'istruzione for come questa:

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

allora alcuni ordini verranno persi se nel frattempo alcuni ordini sono stati chiusi o cancellati. D'altra parte, se il ciclo for() va come questo:

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

allora elaborerà tutti gli ordini

 

Mladen ,

Oh, capisco:

Ecco per il processo di chiusura:

"

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, capisco:

Eccolo per il processo di chiusura:

"

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

Cambiate il ciclo in

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

e dovrebbe essere OK

 

Mladen,

Bingo!

Ora fa esattamente quello di cui avevo bisogno.

Grazie mille per il tuo grande aiuto.

"Alle persone non importa quanto sai finché non sanno quanto ti importa"

- Theodore Roosevelt

Cordialmente.

Tomcat98

 
Tomcat98:
Mladen,

Bingo!

Ora fa esattamente quello di cui avevo bisogno.

Grazie mille per il tuo grande aiuto.

"Alle persone non importa quanto sai finché non sanno quanto ti importa"

- Theodore Roosevelt

Cordialmente.

Tomcat98

Codifica felice

 

Ciao Mladen, grazie per ogni cosa, ora funziona bene...

ora sono bloccato con un indicatore creato che non viene ricaricato così ogni volta che una candela si chiude devo ricaricare l'indicatore, puoi aiutarmi a risolvere questo problema? ecco una parte del codice (è un indicatore di tendenza basato su lacune semplice idea, grazie:

#property copyright "Copyright © 2014 Daniel Luchinger"

#proprietà link

#proprietà strict

#proprietà strict

#proprietà indicator_chart_window

#proprietà indicator_buffers 4

#Proprietà indicatore_colore1 clrLime

#proprietà indicator_color2 clrRed

#proprietà indicatore_colore3 clrMagenta

#proprietà indicatore_colore4 clrCyan

#define COMPRA 1

#define VENDERE 2

doppio Buy[],

Vendere[],

FirstBuy[],

FirstSell[];

int OnInit() {

SetIndexBuffer(0,FirstBuy);

SetIndexBuffer(1,FirstSell);

SetIndexBuffer(2,Buy);

SetIndexBuffer(3,Vendere);

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_SUCCEED);}

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[]) {

int statico lastSignal=0;

for(int i=MathMin(rates_total-prev_calculated, rates_total-1); 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){

se(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));

 
daniel1983:
Ciao Mladen, grazie di tutto, ora funziona bene...

ora sono bloccato con un indicatore creato che non viene ricaricato così ogni volta che una candela si chiude devo ricaricare l'indicatore, puoi aiutarmi a risolvere questo? qui è parte del codice (è un indicatore di tendenza basato su lacune semplice idea, grazie:

#property copyright "Copyright © 2014 Daniel Luchinger"

#proprietà link

#proprietà strict

#proprietà strict

#proprietà indicator_chart_window

#proprietà indicator_buffers 4

#Proprietà indicatore_colore1 clrLime

#proprietà indicator_color2 clrRed

#proprietà indicatore_colore3 clrMagenta

#proprietà indicatore_colore4 clrCyan

#define COMPRA 1

#define VENDERE 2

doppio Buy[],

Vendere[],

FirstBuy[],

FirstSell[];

int OnInit() {

SetIndexBuffer(0,FirstBuy);

SetIndexBuffer(1,FirstSell);

SetIndexBuffer(2,Buy);

SetIndexBuffer(3,Vendere);

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_SUCCEED);}

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[]) {

int statico lastSignal=0;

for(int i=MathMin(rates_total-prev_calculated, rates_total-1); 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){

se(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)));

daniel1983

Prova in questo modo:

#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)));

}

}

 

Ciao Mladen, grazie ma scrivendo il codice in questo modo, ci sono segnali mancanti, per favore dai un'occhiata ho fatto un'immagine che li confronta sul grafico giornaliero USDJPY:

Cosa può essere?

File:
 
daniel1983:
Ciao Mladen, grazie ma scrivendo il codice in questo modo, ci sono dei segnali mancanti, per favore dai un'occhiata ho fatto un'immagine che li confronta sul grafico giornaliero USDJPY:

Cosa può essere?

daniel1983

Nel tuo codice hai usato valori futuri (questi :

High-Close

Low-Close

Ho usato Close - che è un normale valore precedente. Cambialo in ma poi si ridisegnerà

 

Cari mrtools e mladen

Qualcuno può aiutarmi? Tom Demark Moving Average è un indicatore chiave all'interno della mia strategia, tuttavia, un allarme sarebbe molto utile per quando viene indicato un nuovo ripiano; sarei molto grato se un allarme potesse essere codificato nell'indicatore. In attesa della vostra gentile assistenza.

Molte grazie

Motivazione: