Idee grezze - pagina 5

 

Stop loss per EA

Scusa per il titolo sopra, quello di cui ho bisogno è un comando take profit. Non ho idea di come codificare ma vorrei aggiungere un Take Profit a questo ea. Qui sotto c'è il codice per favore aggiungete il take profit dove necessario. Grazie ancora

Ray

extern double MaximumRisk =0.02; //% del saldo del conto a rischio per posizione

extern double DecreaseFactor =3; //divisore della dimensione del lotto (riduttore) durante la striscia di perdite

extern double Lot.Margin =50; //margine per 1 lotto

extern int Magic =69;

extern string comment ="m icwr ea";

double spread; spread =Ask-Bid;

int slip; slip =spread/Point;

int RequiredWaveHeight,b,s,cnt,ticket;

double rsi,SL,ICWR,ICWRv0,awp1,awp2,active.high,active.low,high.c,high.r,low.r,low.c;

datetime awt1,awt2,a.high.shift,a.low.shift,shift;

int init(){return(0);}

int deinit(){return(0);}

int start(){

PosCounter();

rsi=iRSI(Symbol(),1440,14,PRICE_CLOSE,0);

if(Period()==5) {RequiredWaveHeight=40;SL=50*Point;}

if(Period()==240) {RequiredWaveHeight=150;SL=100*Point;}

ICWR=iCustom(Symbol(),Period(), "ICWR",10,5,3,RequiredWaveHeight,0,0);

ICWRv0=iCustom(Symbol(),Period(), "ICWR v0", "ZigZag",10,5,3, "ActiveWave",50,RequiredWaveHeight,0,0);

awt1=ObjectGet("Activewave",OBJPROP_TIME1);

awp1=ObjectGet("Activewave",OBJPROP_PRICE1);

awt2=ObjectGet("Activewave",OBJPROP_TIME2);

awp2=ObjectGet("Activewave",OBJPROP_PRICE2);

se(awp1>awp2) {

active.high=awp1;

a.high.shift=iBarShift(Symbol(),Period(),awt1);

active.low=awp2;

a.low.shift=iBarShift(Symbol(),Period(),awt2);}

else {

active.high=awp2;

a.high.shift=iBarShift(Symbol(),Period(),awt2);

active.low=awp1;

a.low.shift=iBarShift(Symbol(),Period(),awt1);}

if(a.high.shift<a.low.shift) shift=a.high.shift;

altrimenti shift=a.low.shift;

high.c=NormalizeDouble(active.low+((active.highactive.low)*0.75),Digits);

high.r=NormalizeDouble(active.low+((active.high-active.low)*0.618),Digits);

low.r=NormalizeDouble(active.low+((active.high-active.low)*0.382),Digits);

low.c=NormalizeDouble(active.low+((active.high-active.low)*0.25),Digits);

se(rsi>50) {

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

if(Closelow.r && Low[1]>high.c && b==0) {

ticket1=OrderSend(Symbol(),OP_SELL,1.0,Bid,0,Bid+20*Point,Bid-30*Point, "expert comment",255,0,CLR_NONE);

OP_BUY,

LottiOttimizzati(),

Chiedi,

slittamento,

Ask-SL,

0,

Periodo()+commento,

Magia,0,Blu);

if(ticket>0) {

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))

{ Print(ticket); }

else Print("Errore Apertura Ordine BuyStop: ",GetLastError());

return(0);}}}}

if(rsi<50) {

for(int ii=0;ii<shift;ii++) {

if(Closelow.r && High[1]<low.c && s==0) {

ticket=OrderSend(Symbol(),

OP_SELL,

LottiOttimizzati(),

Bid,

slittamento,

Bid+SL,

0,

Periodo()+commento,

Magia,0,Arancione);

if(ticket>0) {

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))

{ Print(ticket); }

else Print("Errore Apertura Ordine SellStop: ",GetLastError());

return(0);}}}}

if(b>0) {

for(int c=0;c<shift;c++) {

if(High[1]<low.c) {

OrderClose(ticket,OrderLots(),Bid,slip,0);}}}

if(s>0) {

for(int cc=0;cc<shift;cc++) {

se(Low[1]>high.c) {

OrderClose(ticket,OrderLots(),Ask,slip,0);}}}

commenti();

return(0);}

//+---------------------------FUNCTIONS------------------------------+

void PosCounter() {

b=0;s=0;ticket=0;

for(cnt=0;cnt<=OrdersTotal();cnt++) {

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) {

if(OrderType()==OP_SELL) {

ticket=OrderTicket();

s++;}

if(OrderType()==OP_BUY) {

ticket=OrderTicket();

b++;} }}}

void comments() {

if(MarketInfo(Symbol(),MODE_SWAPLONG)>0) string swap="lunghi";

else swap="short";

if(MarketInfo(Symbol(),MODE_SWAPLONG)<0 && MarketInfo(Symbol(),MODE_SWAPSHORT)<0) swap="il tuo broker. ";

Comment("Ultimo Tick: ",TimeToStr(CurTime(),TIME_DATE|TIME_SECONDS),"\n",

"Lo swap favorisce ",swap,"\n",

"Daily RSI= ",rsi,"\n",

"Attivo alto: ",active.high,"\n",

"Spostamento alto: ",a.high.shift,"\n",

"Conferma alto: ",high.c,"\n",

"Retrace alto: ",alto.r,"\n",

"Ritracciamento basso: ", low.r,"\n",

"Conferma bassa: ",low.c,"\n",

"Attivo basso: ",attivo.basso,"\n",

"Spostamento basso: ",a.low.shift); }

double LotsOptimized() {

doppio lotto;

int orders=HistoryTotal();

int perdite=0;

lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/Lot.Margin,2);

if(FattoreRiduzione>0) {

for(int i=ordini-1;i>=0;i--) {

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Errore nella storia!"); break; }

if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continua;

se(OrderProfit()>0) break;

se(OrderProfit()<0) perdite++; }

if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,2); }

if(lot<0,01) lot=0,01;

return(lot); }//end LotsOptimized

 

non importa...

Non importa...in qualche modo

ho scaricato il catfx TEMPLATE ed è apparso tutto...

Non so

 

domanda veloce...che dati ti dà INDinverse?

Ho questo grafico ma non riesco a decifrare quali informazioni mi dice.

Ho fatto una ricerca ma è venuto a corto di una descrizione.

GRAZIE U PER UR SUPPORTO

File:
 

Il nuovo grafico disattiva l'EA?

Ciao di nuovo,

(Questo è un gran bel forum, avrò presto qualcosa da condividere!)

Sto giocando con l'esempio "Your First Expert Advisor" di CodersGuru dal suo corso MQL4...

Ho notato qualcosa che spero abbia una soluzione... Dopo aver caricato l'EA sul grafico 30M... ha aperto un ordine (short). Avevo modificato il suo codice per testare la mia strategia di uscita (un semplice cross su un periodo di tempo inferiore)...

Il cross è arrivato e se n'è andato (e lo stato stampato, e il mio codice era corretto) COME MA, ero sul grafico 15M in quel momento... questo significa che ho disattivato l'EA (quindi il mio codice/logica non ha funzionato)?

Se è così, c'è un modo per aggirare questo problema... Vorrei cliccare avanti e indietro su altri timeframe... senza disattivare l'EA in esecuzione.

Grazie in anticipo per le risposte.

-charliev

 

L'efficacia del sistema è proporzionale alla crescita dei suoi utenti?

Credete che un sistema guadagni o perda la sua efficacia all'aumentare del numero di persone che lo applicano?

Sembra che molti trader di successo di solito non condividano le loro strategie di trading, quindi ci deve essere una ragione per cui lo fanno. Qualcuno ha voglia di provarci?

 
TheShanghai:
Voi credete che un sistema guadagni o perda la sua efficacia con l'aumentare del numero di persone che lo applicano? Sembra che molti trader di successo di solito non condividano le loro strategie di trading, quindi ci deve essere una ragione per cui lo fanno. Qualcuno ha voglia di provarci?

Ho sentito parlare di questa idea che molti trader di successo di solito non condividono le loro strategie di trading o condividono soprattutto alcune strategie sbagliate. Può essere. Non so. Perché il forex è denaro. Penso che non è niente con questa efficacia. È perché non così tanti commercianti di successo ed è qualcosa con i broker.

BTW, penso che sia personale. Un trader può utilizzare alcune strategie di trading e io non posso a causa del mio carattere, abitudini, fuso orario ecc. Quindi è personale. Comunque possiamo scoprire tutte le strategie come stiamo già facendo qui nel forum.

 

Grazie per il feedback. Lo terrò presente.

 

Seguire la tendenza

Ciao,

Ho un sistema semplice ma stabile che funziona per me. Faccio uso di un EMA 34 in chiusura. RSI 7 in chiusura. CCI 20 in chiusura. Posiziono l'EMA su un grafico e guardo il trend. Inizia dalla 30M e muoviti fino a H4 anche D1. Il trend dell'EMA deve essere lo stesso per tutti i timeframe. Se il trend è giusto puoi entrare in un trade se RSI è sopra/sotto 50 sul timeframe D1 e CCI è sopra/sotto 100. Resta sul grafico H4 quando inizia il trade, ti impedisce di vedere il rumore del mercato e ti permette di chiudere prima del tempo. Metti uno stoploss a 80 pip. Puoi anche usare il Fib per vedere se il mercato ha un ritracciamento o no. Mi piace usare un canale equidistante (uno strumento standard di Metatrader) per trovare la tendenza del mercato. Mi attengo a questa tendenza fino a quando non ottengo i miei profitti. Questo metodo non è a prova di errore, ma una cosa è certa e per me ha più senso ogni giorno e cioè che non faccio trading contro una tendenza importante.

Per favore, sperimentate questo metodo su demo e costruiamo un sistema a lungo termine che funzioni per i trader più seri.

Roets

 

Valore predefinito quando viene dichiarata una matrice

Ciao a tutti,

Quale valore viene messo come valore di default in questo Array:

doppio ARRAYA[];

doppio ARRAYB[];

Voglio cancellare l'intero contenuto di questi Array facendo

ArrayInitialize(ARRAYA,NULL);

ArrayInitialize(ARRAYB,NULL);

Tuttavia, impostando su NULL, l'array viene riempito con 0 (zero).

Qualche suggerimento?

-charliev

 

Indicatore #include in EA?

Ciao a tutti,

C'è un modo per #includere un indicatore compilato in modo che venga caricato al caricamento dell'EA? (Rendendo l'EA indipendente come 1 file .EX4?)

Grazie per l'aiuto!

-charliev

Motivazione: