easy language how to

  • ANNUNCIO: Segui le NewsLetter di Borse.it.

    Al via la Newsletter di Borse, con tutte le notizie quotidiane sui mercati finanziari. Iscriviti per rimanere aggiornato con le ultime News di settore, quotazioni e titoli del momento.
    Per iscriverti visita questo link.

Pan Peter

Uncino non usa + il bidet
Registrato
11/6/01
Messaggi
2.003
Punti reazioni
96
Per cortesia, qlc1 può indicarmi la via?

come posso modificate tale codice:

{*******************************************************************
Description : This Function returns FindBar
Provided By : Omega Research, Inc. (c) Copyright 1999
********************************************************************}

Inputs: TrgtDate(NumericSimple), TrgtTime(NumericSimple);
Variables : Return(0), Loop(0), Found(FALSE);

If MaxBarsBack > 50 Then
value1 = value1[MaxBarsBack]
Else
value1 = value1[50];
Return = -1 ;
Loop = 0 ;
Found = FALSE ;
While Loop < MaxBarsBack AND Found = False Begin
If Date[Loop] = TrgtDate AND Time[Loop] = TrgtTime Then Begin
Found = True;
Return = Loop;
End
Else
Loop = Loop + 1;
End;

FindBar = Return;

**********************************************

in modo tale da avere il N° di candele oltre 50?
(oltre 50 plotta -1, alias il Return = -1 ;)


ho modificato

Else
value1 = value1[50];

con


Else
value1 = value1[100];

se la TL va oltre 100 sono punto e a capo, aumentando tale valore oltre 100 non plotta +.



Grazie
:)
 
Scritto da Pan Peter
Per cortesia, qlc1 può indicarmi la via?

come posso modificate tale codice:

{*******************************************************************
Description : This Function returns FindBar
Provided By : Omega Research, Inc. (c) Copyright 1999
********************************************************************}

Inputs: TrgtDate(NumericSimple), TrgtTime(NumericSimple);
Variables : Return(0), Loop(0), Found(FALSE);

If MaxBarsBack > 50 Then
value1 = value1[MaxBarsBack]
Else
value1 = value1[50];
Return = -1 ;
Loop = 0 ;
Found = FALSE ;
While Loop < MaxBarsBack AND Found = False Begin
If Date[Loop] = TrgtDate AND Time[Loop] = TrgtTime Then Begin
Found = True;
Return = Loop;
End
Else
Loop = Loop + 1;
End;

FindBar = Return;

**********************************************

in modo tale da avere il N° di candele oltre 50?
(oltre 50 plotta -1, alias il Return = -1 ;)


ho modificato

Else
value1 = value1[50];

con


Else
value1 = value1[100];

se la TL va oltre 100 sono punto e a capo, aumentando tale valore oltre 100 non plotta +.



Grazie
:)

Creati una nuova funzione chiamata MyFindBar , return type : Numeric.
**********************************************
{Function : MyFindBar
Uso: dati gli input ci dice quante barre indietro è stata trovate la barra di target rispetto alla barra corrente, ritorna -1 se non è stata trovata nessuna barra, es. se la funzione ritorna 3 la barra di target è 3 barre indietro rispetto a quella corrente }

inputs: TrgtDate(NumericSimple), TrgtTime(NumericSimple) ;
Vars:BarsBack(-1),StartCount(False);

If D=TrgtDate and T=TrgtTime then StartCount=True;
If StartCount=True then BarsBack=BarsBack+1;

MyFindBar=BarsBack;

Ciao.
 
A senso dovresti anche modificare il

If MaxBarsBack > 50 Then

con
If MaxBarsBack > 100 Then

oltre l'Else come hai fatto.
 
Grazie Mind ora provo ma a pelo mi pare non possa funzionare xchè deve trovare il Num di barre tra due TL, queste

BD = Tl_GetBeginDate(TLNum);
EZ = Tl_GetEndDate(TLNum);

avevo risolto in questo modo;

Nome funzione "FindBars"



Inputs: TrgtDate(NumericSimple), TrgtTime(NumericSimple);
Variables : Return(0), Loop(0), Found(FALSE);

If MaxBarsBack > 200 Then
value1 = value1[MaxBarsBack]
Else
value1 = value1[200];

If MaxBarsBack > 400 Then
value1 = value1[MaxBarsBack]
Else
value1 = value1[400];


If MaxBarsBack > 500 Then
value1 = value1[MaxBarsBack]
Else
value1 = value1[500];

If MaxBarsBack > 600 Then
value1 = value1[MaxBarsBack]
Else
value1 = value1[600];

If MaxBarsBack > 700 Then
value1 = value1[MaxBarsBack]
Else
value1 = value1[700];

If MaxBarsBack > 800 Then
value1 = value1[MaxBarsBack]
Else
value1 = value1[800];

If MaxBarsBack > 900 Then
value1 = value1[MaxBarsBack]
Else
value1 = value1[900];

If MaxBarsBack > 1000 Then
value1 = value1[MaxBarsBack]
Else
value1 = value1[1000];




Return = -1 ;
Loop = 0 ;
Found = FALSE ;
While Loop < MaxBarsBack AND Found = False Begin
If Date[Loop] = TrgtDate AND Time[Loop] = TrgtTime Then Begin
Found = True;
Return = Loop;
End
Else
Loop = Loop + 1;
End;

FindBars = Return;
 
Re: Re: easy language how to

Scritto da irab
A senso dovresti anche modificare il

If MaxBarsBack > 50 Then

con
If MaxBarsBack > 100 Then

oltre l'Else come hai fatto.

grazie irab, vedi su:)
 
Re: Re: easy language how to

Scritto da MindGame
Creati una nuova funzione chiamata MyFindBar , return type : Numeric.
**********************************************
{Function : MyFindBar
Uso: dati gli input ci dice quante barre indietro è stata trovate la barra di target rispetto alla barra corrente, ritorna -1 se non è stata trovata nessuna barra, es. se la funzione ritorna 3 la barra di target è 3 barre indietro rispetto a quella corrente }

inputs: TrgtDate(NumericSimple), TrgtTime(NumericSimple) ;
Vars:BarsBack(-1),StartCount(False);

If D=TrgtDate and T=TrgtTime then StartCount=True;
If StartCount=True then BarsBack=BarsBack+1;

MyFindBar=BarsBack;

Ciao.


da sempre -1

per ora mi pare che l'unico modo, se la serie storica non è molto lunga , sia usare FindBars "tarok" o in alternativa il conto con i trading day

Grazie per la collaborazione a tutti:)
 
Re: Re: Re: easy language how to

Scritto da Pan Peter
da sempre -1

per ora mi pare che l'unico modo, se la serie storica non è molto lunga , sia usare FindBars "tarok" o in alternativa il conto con i trading day

Grazie per la collaborazione a tutti:)

Ciao PeterPan, ho visto che hai usato il mio suggerimento.

Non conosco Easy ma grosso modo quasi tutti i linguaggi adottano la stessa logica sulle sintassi, funzioni, costrutti ecc.

Tuttavia vedo che hai inserito una serie di if....then ...else per testare la quantità di barre.

Volendo aiutarti in maniera più efficiente, mi dovresti postare il significato delle variabili e la sintesi dei comandi utilizzati.

Io uso programmi scritti da me.
Ebbene distinguo se devo fare una ricerca a ritroso o in avanti;
se la ricerca deve essare fatta in tutta la banca dati, oppure solo sulla parte graficata, nel secondo caso basterebbe conoscere il nome della variabile che indica il numero delle barre graficate e sostituirla al valore 50 nell' IF....THEN....ElSE, nel primo invece occorre andare indietro nella banca fino al primo record che soddisfa la condizione quindi individuare il valore dell'intercetta sull'asse delle y, trasformarla nel pixel corrispondente e quindi plottare(molto più complicato dovendo essere padrone del modo di lavorare del software grafico).

Vedi un pò tu cosa vorresti fare.
 
Indietro