Chiedete! - pagina 145

 

Chiamare un servizio web con MQL

Qualcuno sa come chiamare servizi web esterni da un expert advisor?

 
 

Immagino che questo sia qualcosa di basilare, solo che non so come accedervi. Qualcuno può dirmi come recuperare l'Open/Close giornaliero di diversi giorni fa se mi trovo su un grafico che non sia il giornaliero? Magari fornire del codice di esempio, sarebbe utile.

Grazie

ET

 

Guarda nell'aiuto di MetaEditor per iopen e iclose

Lux

 
luxinterior:
Guarda nella guida di MetaEditor per iopen e iclose Lux

Grazie mille, ha fatto il trucco...

ET

 

Richiesta di correzione del codice

Salve,

Sto cercando di modificare l'indicatore allegato per eseguire quanto segue:

1) far coincidere la data di inizio con il colore1, in questo momento l'indicatore traccia il secondo colore (colore2) della serie sulla data di inizio e non il primo

2) emettere la data, il colore, l'apertura, il massimo, il minimo e la chiusura di ogni linea tracciata nella serie. Il file verrebbe aggiunto quando sono disponibili nuovi dati.

Grazie per il vostro aiuto in anticipo.

Saluti,

 

Calcolo del minimo più basso/utilizzo del trend del time frame più alto/evita il problema dello spread

Sto cercando di trovare qualche esempio di codifica che possa soddisfare i seguenti requisiti:

Per calcolare il posizionamento di uno stop mi piacerebbe vedere una codifica che per ogni dato time frame all'EA possa essere detto il BASSO più basso (o il massimo più alto) durante l'ultimo X numero di barre... e poi usare quel prezzo meno (o più nel caso del massimo più alto) X numero di pip per impostare un livello di stop.

Affinché ogni nuovo ordine a breve termine sia piazzato nella stessa direzione del trend di un time frame più grande, mi piacerebbe vedere una codifica che permetta di piazzare nuovi ordini sul grafico a breve termine SOLO nella stessa direzione del trend del grafico a tempo più grande. Per fare un semplice esempio, supponiamo che un EA collegato a un grafico a 15 minuti voglia piazzare un ordine di acquisto sull'incrocio verso l'alto della MA1 sulla MA2 (con uno stop piazzato come da domanda precedente a 5 pip sotto il minimo più basso delle ultime 5 barre) MA sto cercando un codice che piazzi quel nuovo ordine solo a condizione che sul grafico a un'ora per quella stessa coppia, il prezzo corrente sia sopra (o sotto nel caso di una vendita) una MA del periodo X.

Al fine di evitare false aperture/chiusure di ordini a causa di spread insolitamente ampi, mi piacerebbe vedere una codifica che inneschi l'azione dell'ordine solo in base alla CHIUSURA della barra corrente (o anche precedente potrebbe essere considerata) piuttosto che essere attivata mentre una barra è ancora aperta. Con IBFX, per esempio, ho visto spread che di solito erano di 5 pip essere spesso larghi come 20 pip (e una volta ho visto anche 53 pip!). Sembra che un'azione di spread così ampia abbia spesso aperto un nuovo ordine perché durante la formazione della barra le MA si sono temporaneamente incrociate... ma al momento della chiusura della barra NON si erano incrociate lasciandomi così con un ordine di acquisto sul posto che non era desiderato!

Qualsiasi esempio di codice per affrontare queste cose sarebbe molto apprezzato.

 
File:
 

Caro coderguru,

E' forse il lavoro più semplice nella codifica per cambiare il colore....... non sono in grado di farlo............

Basta cambiare il supporto in un colore e la resistenza in un colore diverso di questo codice.......

Qui resistenza e supporto sono in un colore simile.....................

E gli oggetti non vengono cancellati quando l'indicatore viene eliminato.............

Grazie in anticipo.............

 

Aiuto con Trailling Stop / 1 Rischio o Posizione M

Ciao a tutti,

Ho provato a cercare nel forum una soluzione per il mio problema:

All'inizio del mio EA:

//---- buy conditions

if(Ask > mybuyconditions)

{

ticket=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-lowestof10bars),((BBupper-BBlower)/(Ask-lowestof10bars))*1000,"Einstieg 1",magic+1,0,Green);

}

//---- sell conditions

if(Bid < mysellconditions)

{

ticket=OrderSend(Symbol(),OP_SELL,LotsShort(),Bid,Spread,Ask+(highestof10bars-Bid),((BBupper-BBlower)/(highestof10bars-Bid))/100,"Einstieg -1",magic-1,0,Red);

}

//----[/CODE]

Stopploss: its easy 10 bars hi/lo

Takeprofit: here i write my formula for my Trailingstop, and that is:

Take the differenz of BBupper - BBlower at the order open time. Then divide by StopLoss in Pips and you have an Factor. Then take the actual BB differenz and divide it by this Faktor. NOW WE HAVE OUR VOLA BB TRAILINGSTOPP!!!!!

SO, my big problem is now to save this FAKTOR!!!! I saved it in th Takeprofit of Ordersend, it works but it is not right!!!!!

And know the 2te Question:

Position Management:

so my order is open and i have my trailing stopp that trails : So and now if the trailingstop is > orderopenprice send next ORDER!!! It's logical because so i can always sicure to risk just my 1 R Risk.

.... if Trailingstopp is > orderopenprice of secondOrder send 3te order.

HERE MY EXAMPLES:

for(int i = (OrdersTotal()-1); i >= 0; i--)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+1)

if(OrderStopLoss()< Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() > OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 1)

{

ticket1=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-Low),((oben-unten)/(Ask-Low))*1000,"Einstieg 2",magic+2,0,Green);

return;

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2 && CalculateCurrentAfterOrders(Symbol()) <= 1)

{

if(OrderStopLoss()<Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() > OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 2)

{

ticket2=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-Low),((oben-unten)/(Ask-Low))*1000,"Einstieg 3",magic+3,0,Green);

return;

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+3 && CalculateCurrentAfterOrders(Symbol()) <= 2)

{

if(OrderStopLoss()< Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

}

}

}

[CODE] if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+1)

{

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() >= OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 1)

{

ticket1=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,0,0,"Einstieg 2",magic+2,0,Green);

return;

}

}

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2)

{

if(OrderStopLoss() >= OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 2)

{

ticket2=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,0,0,"Einstieg 3",magic+3,0,Green);

return;

}

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2)

{

if(CalculateCurrentOrders(Symbol()) == 0)

{

OrderClose(ticket1,OrderLots(),Ask,Spread,Red); return;

}

}

}

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+3)

{

OrderClose(i,OrderLots(),Ask,Spread,Red); return;

}

Spero che qualcuno possa aiutarmi con questo problema!!!!! Grazie a tutti.