Come codificare? - pagina 204

 

MT-4, per favore aiutatemi.

MT-4- Per favore aiutatemi, voglio fare un file di intersezione DMI + e DMI -. Voglio avere il segnale nel momento di muovere DMI+ e DMI- senza ADX. Mi interessa. Scrivo questo qui sotto ma per favore crea per questo il file per spostarlo in MF4.

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

//| ADXcross EXPERT |

//| Perky_z ||

//| |

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

#proprietà copyright "Perky_z@yahoo.com"

#property link "http://groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/"

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

//| Avvisi in mano con ADXcrosses Indicatore non hanno bisogno di essere eseguiti insieme.

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

// Avvisi su incroci di linee + e - DI

// Io lo uso sui grafici a 15 minuti

// anche se sembra buono su qualsiasi time frame

// usa altri indicatori per confermare questo trigger tho

//---- parametri di ingresso

doppio b4plusdi,b4minusdi,nowplusdi,nowminusdi;

//----

//---- indicatori

In questa parte di codice cambiate il periodo come volete (14 cambi per 4 in ogni linea) e questo dovrebbe funzionare in questo scal che situate il diagramma.

b4plusdi=iADX(NULL,0,14,PRICE_CLOSE,MODE_PLUSDI,1);

nowplusdi=iADX(NULL,0,14,PRICE_CLOSE,MODE_PLUSDI,0);

b4minusdi=iADX(NULL,0,14,PRICE_CLOSE,MODE_MINUSDI,1);

nowminusdi=iADX(NULL,0,14,PRICE_CLOSE,MODE_MINUSDI,0);

 

Questo sta chiudendo lotti parziali MA... non sta facendo esattamente quello che mi aspettavo.

Non riesco a capire cosa stia facendo ma sembra chiudere 1 lotto quando il prezzo NON è dove voglio.

Forse potete vedere il problema qui.

dovrebbe chiudere 1 lotto quando c'è un BUY e il prezzo va .00071 (solo un numero casuale che sto testando su un grafico a 1 minuto)

o chiudere 1 lotto quando c'è una VENDITA e il prezzo scende di .00071

usando un broker a 5 cifre. C'è solo 1 trade sempre aperto e solo da questo EA, quindi niente scorrimento degli ordini

GRAZIE per l'AIUTO!

if (IsConnected() && IsTradeAllowed()) while (IsTradeContextBusy()) Dormire(75);

se (OrdiniTotali()>0) {OrderSelect(0, SELECT_BY_POS,MODE_TRADES);

RefreshRates();

if (Bid >= (OrderOpenPrice()+ (.00071)) && OrderLots() == 2 && (OrderType() == OP_BUY)) {

OrderClose(OrderTicket(),1,Ask,10,R ed); }

if (Ask <= (OrderOpenPrice()- (.00071)) && OrderLots() == 2 && (OrderType() == OP_SELL)) {

OrderClose(OrderTicket(),1,Bid,10,B lue); }}

 

È possibile fare un codice per chiudere una transazione a pareggio (profitto=0), quando una transazione ha (una volta) un profitto positivo, ma ancora sotto lo stoplevel del broker (il trailing non è ancora toccato)?

Per un broker con livello di stop di 10 punti, il sistema di trailing può funzionare solo se il profitto ha raggiunto almeno 10 punti.

Molte volte vedo che una transazione è andata in positivo solo fino a 5 o 8 pip, poi torna indietro per colpire il suo SL.

Quindi sto pensando a questo, ma non so come fare.

Come fare un codice di pareggio per un EA, qualcosa di simile al Trailing Stop, ma che funzioni sotto lo StopLevel minimo del broker?

 

A SPACECHIMP

Quando apriamo un ordine, usiamo Ask per comprare e Bid per vendere. Quando si chiude - al contrario.

 

Sì, penso che sia molto utile

FulltimeTrader:Giugno2009

 

Ho bisogno di aiuto per aggiungere un allarme e-mail in questo indicatore Top Trend

Ho bisogno di aiuto per aggiungere un allarme e-mail in questo indicatore Top Trend.

Ecco la linea e il file allegato.

se (tendenza>0)

{

if (Signal>0 && UpTrendBuffer[shift+1]==-1.0)

{

UpTrendSignal[shift]=bsmin[shift];

UpTrendBuffer[shift]=bsmin[shift];

if(Line>0) UpTrendLine[shift]=bsmin[shift];

se (SoundON==true && shift==0 && !TurnedUp)

{

Alert("BBands going Up on ",Symbol(),"-",Period());

TurnedUp = true;

TurnedDown = false;

}

}

else

{

UpTrendBuffer[shift]=bsmin[shift];

if(Line>0) UpTrendLine[shift]=bsmin[shift];

UpTrendSignal[shift]=-1;

}

se (Signal==2) UpTrendBuffer[shift]=0;

DownTrendSignal[shift]=-1;

DownTrendBuffer[shift]=-1.0;

DownTrendLine[shift]=EMPTY_VALUE;

}

se (trend<0)

{

if (Signal>0 && DownTrendBuffer[shift+1]==-1.0)

{

DownTrendSignal[shift]=bsmax[shift];

DownTrendBuffer[shift]=bsmax[shift];

if(Line>0) DownTrendLine[shift]=bsmax[shift];

se (SoundON==true && shift==0 && !TurnedDown)

{

Alert("BBands going Down on ",Symbol(),"-",Period());

TurnedDown = true;

TurnedUp = false;

}

}

else

{

DownTrendBuffer[shift]=bsmax[shift];

if(Line>0)DownTrendLine[shift]=bsmax[shift];

DownTrendSignal[shift]=-1;

}

se (Signal==2) DownTrendBuffer[shift]=0;

UpTrendSignal[shift]=-1;

UpTrendBuffer[shift]=-1.0;

UpTrendLine[shift]=EMPTY_VALUE;

}

}

return(0);

}

File:
toptrend.mq4  6 kb
 

Non riesci a vedere il problema QUI!!!? AAAAHHHH

Non ho idea di cosa sto sbagliando.

questo non sembra chiudere la metà ad un certo TP

se (OrdiniTotali()>0) {

OrderSelect(0, SELECT_BY_POS,MODE_TRADES);

Tick = OrderTicket(); // Numero dell'ordine selezionato

Tip =OrderType(); // Tipo di ordine selezionato

Price =OrderOpenPrice(); // Prezzo dell'ordine selezionato

Lotto =OrderLots();

if (Bid >= (Prezzo + (TakeProfit * Punto)) && Lot == 2 && (Tip == OP_BUY)) {

OrderClose(Tick,1,Bid,10,Red); }

if (Ask <= (Prezzo - (TakeProfit * Punto)) && Lot == 2 && (Tip == OP_SELL)) {

OrderClose(Tick,1,Ask,10,Blu); }}

Ho corretto il BID e l'ASK? probabilmente no

 

ho bisogno di aiuto con il mio ea

Ho bisogno di un codice per limitare il mio ea ad un solo trade. è uno scalper, voglio solo un trade, dopo che fa, lo rimando e lo attacco di nuovo il giorno dopo. qualcuno può aiutarmi su questo?

 

Dove in questo thread....

Da qualche parte in questo thread deve essere stata posta questa domanda...

Qualcuno può aiutarmi con il codice per 1) avere uno SL nascosto che 2) chiude solo una parte (50%) dell'ordine aperto e 3) chiude il resto dell'ordine dopo che ha attraversato una media mobile.

In allegato c'è un EA, ma non è in inglese, quindi non riesco a capire bene cosa sta facendo o dove aggiungere il mio altro codice.

Grazie per il vostro aiuto.

File:
 

Come evitare di ricaricare l'indicatore ad ogni nuovo tic

Per favore, ditemi cosa ho fatto di sbagliato invocando iCustom che causa il caricamento di un indicatore ad ogni nuovo tic(il backtesting riempie l'intera finestra di visualizzazione con centinaia di iterazioni di quell'indicatore).

Dal mio "Programma iniziale" voglio confermare un'opportunità di trading usando il metodo EntryDir() (che segue):

static datetime lastsd;

if ( CurTime()-lastsd>2*60*Period() )

{

if(ZZ>=High[1] && EntryDir()==OP_SELL)

{

if(pos == 1) {DoExit(OP_BUY);}

PrepNewOrder(OP_SELL);

lastsd=CurTime();

}

if(ZZ!=0 && ZZ<=Low[1] && EntryDir()==OP_BUY)

{

if(pos == -1) {DoExit(OP_SELL);}

PrepNewOrder(OP_BUY);

lastsd=CurTime();

}

}

int EntryDir()

{

bool buyOK=false, sellOK=false;

double flow = iCustom(NULL, 0, "Dtron", 0,0) + iCustom(NULL, 0, "Dtron" 1,0);

doppio trigger = iCustom(NULL, 0, "Dtron", 1,0) + iCustom(NULL, 0, "Dtron", 3,0);

double reversal = iCustom(NULL, 0, "Dtron", 4,0);

if((reversal==0 && flow + trigger>0) || reversal>0) entryDir=OP_BUY;

if((reversal==0 && flow + trigger<0) || reversal<0) entryDir=OP_SELL;

return(entryDir);

}

Per favore, mostratemi come evitare di causare l'apertura di centinaia di finestre di indicatori Dtron.