Come codificare? - pagina 43

 
jimven:
Flytox: Non riesco a trovare tale codice nella mia copia di TrendStrength.

È TrendStrength v2.2

 

Metodo dei prezzi personalizzato

Qualcuno sa come creare un pricemode personalizzato? Sto usando il seguente avviso per segnalare quando il prezzo (extern int PriceMode = 6; //(high+low+close+close)/4) incrocia una MA. Vorrei renderlo personalizzato aggiungendo un offset, diciamo 1 o 2 %. È possibile? Qualcosa come

extern int PriceMode = ((high+low+close+close)/4) * 1.01

----------------------------------------------------

#proprietà indicator_chart_window

extern int MA1.period =5; //Periodo 5

extern int MA1.shift=0;

extern int MA1.method=2; //SMMA

extern int lMA1.price=2; //MA impostato su candela alta

extern int sMA1.price=3; //MA impostato sul minimo della candela

extern int PriceMode = 6; //(high+low+close+close)/4

int cBar,pBarLong,pBarShort;

int start()

{

cBar = Time[0];

if(CheckMACross(1)== 1 && cBar!=pBarLong ) {EmailAlert(1); pBarLong=cBar;}

altrimenti

if(CheckMACross(2)==-1 && cBar!=pBarShort) {EmailAlert(2); pBarShort=cBar;}

return(0);

}

int CheckMACross(int mode)

{

if(mode==1) int price = lMA1.price;

altrimenti

if(mode==2) price = sMA1.price;

double price1 = iMA(Symbol(),0,1,0,1,PriceMode,1);

double ma1 = iMA(Symbol(),0,MA1.period,MA1.shift,MA1.method, price,1);

double price0 = iMA(Symbol(),0,1,0,1,PriceMode,0);

double ma0 = iMA(Symbol(),0,MA1.period,MA1.shift,MA1.method, price,0);

if(ma1 > prezzo1 && ma0 <= prezzo0) return( 1);

altrimenti

se(ma1 = prezzo0) return(-1);

altrimenti

return(0);

}

{

if(mode == 1) SendMail("Signal for LONG",Symbol()+" Go Long"); //SendMail

altrimenti

if(mode == 2) SendMail("Signal for SHORT",Symbol()+" Go Short");//SendMail

}

int lastBAlert = 0;

int lastSAlert = 0;

void EmailAlert(int mode)

{

if(mode == 2 && lastSAlert < Time[0] )

{

SendMail("Go Short 1",Symbol()+" Go Short 1"); //SendMail

lastSAlert = Time[0];

}

}

 
vonokpasah:
Sto facendo appello agli esperti là fuori per favore venire in mio aiuto ho bisogno di alcuni per aiutarmi a costruire un EXPERT ADVISER META 4 TRADER per me sarei molto grato se la mia richiesta è concessa.

Milioni di modi per costruire un esperto, a quale modo stavi pensando?

 

aiuto per il codice sorgente!

Ciao a tutti

Ho un EA e voglio aggiungere un input ad esso

Se take profit >= :xx , compra :xx lotto

extern int Deltaopen1 =100;

Ho scritto

se (tipo == OP_BUY)

{

if (M2.BuyCnt == 0 && OrderTakeProfit() > OrderOpenPrice() + Deltaopen1*point)

{

Buy(Symbol(), GetLots2(), Ask, 0, 0, Magic2);

ritorna;

}

}

se (tipo == OP_SELL)

{

if (M2.SellCnt == 0 && OrderTakeProfit() <= OrderOpenPrice() - Deltaopen1*point)

{

Sell(Symbol(), GetLots2(), Bid, 0, 0, Magic2);

ritorno;

}

}

}

Ma non funziona,

Apprezzo qualsiasi aiuto.

Grazie a voi

 

Ho bisogno di un piccolo aiuto per perfezionare questo EA

Ho questo EA che è una versione modificata del "GAPS EA" trovato altrove su questo forum.

Comunque, in allegato c'è una copia del codice.

#property link ""

//---- input parameters

extern int min_gapsize = 1;

extern double lotsize_gap = 5;

extern int MagicNumber = 10;

//----

datetime order_time = 0;

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

//| expert initialization function |

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

int init()

{

//----

return(0);

}

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

//| expert deinitialization function |

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

int deinit()

{

//----

return(0);

}

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

//| expert start function |

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

int start()

{

/*

Thing to be done in future in this program to make it more efficient

and more powerful:

1. Make the dicission of the quantity of lots used according to

the scillators;

2. This program will catch the gaps.

Things to ware of:

1. the spread;

2. excuting the order not on the gap ends a little bit less.

*/

// Defining the variables to decide.

Print("order time", order_time);

double current_openprice = iOpen(Symbol(), 0, 0);

double previous_highprice = iHigh(Symbol(), 0, 1);

double previous_lowprice = iLow(Symbol(), 0, 1);

double point_gap = MarketInfo(Symbol(), MODE_POINT);

int spread_gap = MarketInfo(Symbol(), MODE_SPREAD)+1;

datetime current_time = iTime(Symbol(), 0, 0);

// catching the gap on sell upper gap

if(current_openprice > previous_highprice + (min_gapsize + spread_gap)*point_gap &&

current_time != order_time)

{

int ticket = OrderSend(Symbol(), OP_SELL, lotsize_gap, Bid, 0, 0,

previous_highprice + spread_gap,

"Gapped Up Sell " + Symbol()+ " " +Period()+ "", MagicNumber, 0, Red);

order_time = iTime(Symbol(), 0, 0);

Print("I am inside (sell) :-)", order_time);

//----

if(ticket < 0)

{

Print("OrderSend failed with error #", GetLastError());

}

}

//catching the gap on buy down gap

if(current_openprice < previous_lowprice - (min_gapsize + spread_gap)*point_gap &&

current_time != order_time)

{

ticket = OrderSend(Symbol(), OP_BUY, lotsize_gap, Ask, 0, 0,

previous_lowprice - spread_gap,

"Gapped Down Buy " + Symbol()+ " " +Period()+ "", MagicNumber, 0, Green);

order_time = iTime(Symbol(), 0, 0);

Print("I am inside (buy) :-)", order_time);

if(ticket < 0)

{

Print("OrderSend failed with error #", GetLastError());

}

}

//----

return(0);

}

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

Ogni volta che lo inserisco nello strategy tester, non apre i trade. Una rapida occhiata al diario mi dice che ci sono stati molti ordini effettuati. Cosa ho fatto di sbagliato?

 

Aiuto: Domanda sull'istogramma di base

Questo è probabilmente molto facile e sto cercando qualcosa, ma ho finito le risorse e non riesco a trovare una risposta.

Tutto quello che sto cercando di fare è richiamare il valore della barra dell'istogramma precedentemente disegnata.

Qualche idea?

Cioè Close[1] mostra l'ultima barra chiusa sul grafico.....

Quindi cosa mostrerebbe l'ultima barra dell'istogramma disegnata su questo indicatore a finestra separata?

Grazie per qualsiasi consiglio in anticipo.

-dharsant

 
dharsant:
Probabilmente questo è davvero facile e sto cercando qualcosa, ma sono a corto di risorse e non riesco a trovare una risposta.

Tutto quello che sto cercando di fare è richiamare il valore della barra dell'istogramma precedentemente disegnata.

Qualche idea?

Cioè Close[1] mostra l'ultima barra chiusa sul grafico.....

Quindi cosa mostrerebbe l'ultima barra dell'istogramma disegnata su questo indicatore a finestra separata?

Grazie per qualsiasi consiglio in anticipo.

-dharsant

Quale indicatore stai chiamando? Basta impostare lo spostamento per chiamare la barra precedente.

Esempio, per una media mobile della barra corrente:

iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,0);

Per una media mobile della barra precedente:

iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,1);

L'ultimo parametro quando si chiama un indicatore indica quante barre dalla corrente saranno lette.

Spero che questo sia quello che stavi cercando.

 

Aiuto di codifica necessario per favore

Sto cercando di utilizzare un paio di indicatori diversi in un ea ma non riesco a capire come implementarli nel sistema. Quale parte dell'indicatore uso per dire comprare o vendere. Come faccio a ottenere la linea di direzione della pendenza in una parte di un EA.

Grazie

Beno

 

Probabilmente non mi sono spiegato bene.

Sto cercando di capire cosa devo mettere in iCustom, questo è quello che ho fatto qui sotto.

double SDL=iCustom(NULL,0, "Slope Direction Line",periodo,metodo,prezzo)

E cosa devo fare per generare segnali di acquisto e vendita dall'indicatore Slope Direction Line per il mio EA. Di seguito è riportato ciò che ho fatto finora, si compila ma non viene generata alcuna posizione.

bool Long = TML && SDL && HeikenAshiOpen < HeikenAshiClose && hasOpen < hasClose;

bool Short = TMS && SDL && HeikenAshiOpen > HeikenAshiClose && hasOpen > hasClose;

Qualsiasi aiuto sarebbe fantastico

Saluti

Beno

 

In primo luogo la chiamata iCustom ha bisogno di due argomenti aggiuntivi alla fine, cioè da quale dei buffer degli indicatori leggere e a quale indice leggere.

In secondo luogo, "SDL" è un numero doppio, quindi mettere solo "SDL" come condizione mostra una certa confusione; forse si compila come "SDL != 0", e forse è questo che si intende.

Motivazione: