Come codificare? - pagina 192

 

...

Cancellato da mladen

Motivo: non ha senso mostrare cosa può andare storto

 

Grazie

Grazie....... Roger

 

bisogno di aiuto per il codice...

grazie ragazzi...

 

Aiuto per favore

CIAO A TUTTI,

Qualcuno può per favore aiutare a fare questo indicatore per non ridisegnare la storia passata soprattutto se la barra è stata chiusa, l'indicatore ridisegna a volte 2 o 3 barre nel commercio dal vivo dopo che le candele sono state chiuse e se possibile un avviso essere aggiunto ad esso. grazie in anticipo.

 

bisogno di aiuto codice...

Ciao colleghi,

Non sono un programmatore, ma apprezzerei molto se qualcuno potesse aiutarmi con questo problema.

Come faccio a riscrivere questo codice in modo che faccia quanto segue;

se (Totale ordine aperto = 0)

allora

lotto = Tipo1Lotto(tipo_ordine);

se (Totale ordini aperti = 1)

allora

lotto = Type2Lot(tipo_ordine);

se (Totale ordini aperti > 2)

allora

lotto = Type3Lot(tipo_ordine);

Grazie a tutti.

Apprezziamo

 

C'è un modo migliore per codificare

Ho codificato un indi che mette i massimi e i minimi di swing sul grafico e ho bisogno di sapere l'ultimo di ognuno di questi prima di continuare. Questo è il mio tentativo di cercare questi due prezzi (quindi ho bisogno di aiuto).

La maggior parte delle volte funziona, ma oggi diceva che l'ultimo swing high era in realtà il penultimo swing high.

Qualcuno potrebbe dare un'occhiata a questo e vedere se c'è un modo migliore di codificare questa parte?

Grazie per qualsiasi aiuto.

int highbar,lowbar,i,n;

doppio curlow=0,curhigh=0;

for (i=200;i>=1;i--)

{

if (High<High && High<High && High<High)

{

curhigh=Alto;

highbar=i+2;

}

if (Low>Low && Low>Low && Low>Low && Low>Low)

{

curlow=Basso;

lowbar=i+2;

}

}

//----controllare se c'è una candela superiore/inferiore dall'ultimo frattale----------

n=MathMax(highbar,lowbar );

for (int x=n-1;x>=0;x--)

{

se (High[x]> curhigh)

{

curhigh=High[x];

highbar=x;

}

se (Basso[x]< curlow)

{

curlow=Basso[x];

lowbar=x;

}

}

Sembra che i rientri non siano stati incollati correttamente, mi dispiace.

 
forexarchitect:
Ciao colleghi,

Non sono un programmatore, ma apprezzerei molto se qualcuno potesse aiutarmi con questo problema.

Come posso riscrivere questo codice in modo che faccia quanto segue

se (Totale ordine aperto = 0)

allora

lotto = Tipo1Lotto(tipo_ordine);

se (Totale ordini aperti = 1)

allora

lotto = Type2Lot(tipo_ordine);

se (Totale ordini aperti > 2)

allora

lotto = Type3Lot(tipo_ordine);

Grazie a tutti.

Apprezzare

Non sono assolutamente un codificatore esperto, ma penso che tu abbia bisogno di fare un ciclo attraverso tutti i tuoi ordini e contare quali ordini soddisfano le tue specifiche. Poi usa diverse istruzioni if per diversi tipi di ordine... esempio.

int total=OrdersTotal(),totalBuy,totalSell;

for (int q=0; q<total; q++ )

{

OrderSelect(q,SELECT_BY_TICKET,MODE_TRADES);

if (OrderMagicNumber() == Magic && OrderType() == OP_BUY)

totalBuy++;

else if (OrderMagicNumber() == Magic && OrderType() == OP_SELL)

totalSell++;

}

Qui sto selezionando i biglietti da contare per numero magico, e anche contando il numero di corti e il numero di lunghi. Puoi usare il codice di cui sopra come esempio.

 

Piazzare un ordine limite sui livelli 50 e 100 psych

Ciao, stavo cercando un piccolo aiuto per il mio codice. Questo sarebbe il codice da usare per piazzare un ordine limite di mercato ai livelli 50 e 100 tondi di una coppia di valute. Voglio piazzare un ordine ai livelli 50 e 100 sopra e sotto l'attuale Ask/Bid.

if (Point == 0.00001) Poin = 0.0001; //6 digits

else if (Point == 0.001) Poin = 0.01; //3 digits (for Yen based pairs)

else Poin = Point; //Normal

for(double q=Ask*Poin,q<Ask+100*Poin,q++)

{

if(MathMod(q,100) == 0 || MathMod(q,50) == 0)

{

\\ Place limit order

}

for(double q=Bid*Poin,q>Bid-100*Poin,q--)

{

if(MathMod(q,100) == 0 || MathMod(q,50) == 0)

{

\\ Place limit order

}

Qualsiasi aiuto sarebbe apprezzato.

 

Indicatore del colore delle barre

Ciao, qualcuno può aiutarmi con un indicatore MT4?

Non sono sicuro che possa essere fatto, ma ho bisogno che le barre siano ricolorate.

R1 = valore più basso delle ultime 20 barre + (2*ATR(10))

R2 = valore più alto delle ultime 20 barre - (2*ATR(10))

Se il prezzo di chiusura è maggiore di R1 allora colora la barra as.... di un blu brillante.

Se il prezzo di chiusura della barra precedente è inferiore a R2 allora colora la barra come.... FireBrick

Grazie

A

 

ancora alla ricerca di un esempio di codice di EA che apre più di 1 ordine

Voglio aprire solo 2 ordini alla volta, 1 con tp e 1 senza e poi non aprirne MAI un altro in quella direzione finché le condizioni non cambiano per aprire in opposto. poi chiudere tutto e ripetere in opposto.

Mi sto sforzando di codificarlo ma...FAIL per ora.

I problemi più grandi sono 1 posizione aperta alla chiusura della candela... poi la seconda si apre alla chiusura della candela successiva. Ho anche più di 2 posizioni aperte a volte e ottengo una nuova posizione ogni volta che la prima colpisce il TP. TUTTO MOLTO MALE.

Ecco il codice dell'ordine di acquisto e di vendita è fondamentalmente lo stesso...

QUALSIASI CONSIGLIO sarebbe utile, sono disposto a digitare il codice

Anche un EA che fa questo che posso guardare per gli esempi...

Penso che questa idea sia molto importante e dovrebbe essere incorporata in un sacco di vari EA per scopi di gestione del denaro.

GRAZIE TANTISSIMO

if ( ) {

Closebuy = True;

MAcrossDown = True;

MAcrossUP = Falso;

OrdertotalCloseBuy = OrdersTotal();

int AttemptsTriedCloseBuy = 0;

bool OrderCloseBuy = False;

bool PositionClosedBuy = False;

if(OrdersTotal() > 0 ){

OrderSelect(0, SELECT_BY_POS, MODE_TRADES);

if(OrderType() == OP_BUY){

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

PositionClosedBuy = False;

AttemptsTriedCloseBuy = 0;

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

while (!PositionClosedBuy && AttemptsTriedCloseBuy < CloseposnAttempts) {

AttemptsTriedCloseBuy = AttemptsTriedCloseBuy + 1;

OrderCloseBuy = OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, LimeGreen);

Sleep(PausebetweenOrders * 1000);

if(OrderCloseBuy == True) { // Posizione chiusa con successo.

PositionClosedBuy = True;

// se (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");

} else if( Order == False && AttemptsTried >= CloseposnAttempts ) {

Print( AttemptsTried + " tentativi di chiudere l'ordine di mercato " +

OrderTicket() + " falliti. Errore [ " + GetLastError() + " ]" );

// if (SignalMail) SendMail( AttemptsTried, " tentativi di chiusura dell'ordine Buy Market falliti" );

} // Fine If, Ordine:

} // End While Loop, AccountAvailable:

}//for

}//if ordertype

}//if ordertotal

Sleep(1000);

if(OrdersTotal() == 0 && Closebuy == True && Sell_Complete_Wait4Cross_Up == False) {

SellTicket1 = Falso;

SellTicket1 = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLoss, Bid - TakeProfit * Point, "SELL(#" + MagicNumber + ")", MagicNumber, 0, Red);

Sleep(PausebetweenOrders * 1000);

Sell_Complete_Wait4Cross_Up = True;

Buy_Complete_Wait4Cross_Down = False;

if (Ticket && SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open 1st Sell");

Sleep(1000);

SellTicket2 = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLoss, 0, "2nd SELL(#" + MagicNumber + ")", MagicNumber, 0, Pink);

Sleep(PausebetweenOrders * 1000);

if (Ticket2 && SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open 2nd Sell");

if(OrdersTotal() == 2 && MAcrossDown == True) {Sell_Complete_Wait4Cross_Up = True; Buy_Complete_Wait4Cross_Down = False;}

}//Ordersend

} //Closebuy