Come codificare? - pagina 181

 

Aiuto per modificare OrderHistory 2.0

Mi chiedevo se qualcuno potesse modificare questo file MQ4 per me. Voglio che la descrizione che appare quando il cursore è sopra le frecce e le linee di tendenza sia più simile a questa..:

VENDERE

(nome dell'ordine rimosso)

Ora di apertura: 2009.05.25 10.00

Ora di chiusura: 2009.05.25 11.00

Prezzo di apertura: 94.98

Prezzo di chiusura: 94.992

Pip: 25.0 |

SL: 50.0 | -> (fare 5digit)

TP: 25.0 |

Max Fl. L: 16.9 ("Max Floating Loss/Profit" - Sarebbe bello se questo potesse essere integrato)

Lotti: 0.38

Lordo: 100.28

...invece di questo:

Vendere: 12345678 2009.05.25 10.00 @ 94.98

Pip: 250 SL: -750 TP: 250 Lotti: 0.38 Lordo: $ 100.28

94.992

Ho provato a cambiare questo da solo, ma senza successo. Non sono un programmatore (ovviamente), ma sarebbe bello se qualcuno che lo è potesse risolvere questo problema. Sarebbe apprezzato.

 

NFA antihedging per favore aiuto

Ciao, ho un problema con la nuova regola NFA. Il mio EA non può più fare ordini pendenti . Si tratta di un semplice EA: aprire 1 ordine, cancellare 1 ordine pendente inutilizzato e fare 2 nuovi ordini pendenti, limite di acquisto e limite di vendita.

Ecco il codice:

if (TotalMikuOrders()==2 && TotalMikuOrders_Mode(OP_BUY)+TotalMikuOrders_Mode(OP_SELL)==1){

for (int j=0;j<OrdersTotal();j++){

OrderSelect(j,SELECT_BY_POS);

if (OrderType()==OP_BUY){

se (OrderMagicNumber()==Magic_Miku_B){

deleteMikuPending();

sendMikuPending(OrderOpenPrice(),Magic_Miku_S,Magic_Miku_B+1,XFactor*CoA,XFactor*CoB,com+"XA",com+"XB",sl1,sl2,r1,r1,sp,sp0,tp1,tp2);

return(0);

}

}

if (OrderType()==OP_SELL){

if (OrderMagicNumber()==Magic_Miku_S){

deleteMikuPending();

sendMikuPending(OrderOpenPrice(),Magic_Miku_S+1,Magic_Miku_B,XFactor*CoB,XFactor*CoA,com+"XB",com+"XA",sl2,sl1,r1,r1,sp0,sp,tp2,tp1);

return(0);

}

}

}

}

}

return(0);

}

void sendMikuPending(double price, int ms,int mb,double lots,double lotb,string coms,string comb,double sls,double slb,double rs,double rb,double sps,double spb,double tps,double tpb){

doppio SL=0,TP=0;

int i;

if (StopLoss>0) {SL=NormalizeDouble(NormalizeDouble(OrderOpenPrice()-Range*rb*Point+spb*Point,Digits)-StopLoss*slb*Point,Digits);}else{SL=0;}

if (TakeProfit>0) {TP=NormalizeDouble(NormalizeDouble(OrderOpenPrice()-Range*rb*Point+spb*Point,Digits)+TakeProfit*tpb*Point,Digits);}else{TP=0;}

if (OrderSend(Symbol(),OP_BUYLIMIT,lotb,NormalizeDouble(OrderOpenPrice()-Range*rb*Point+spb*Point,Digits),Slippage,SL,TP,comb,mb,0,Blue)==-1) {

i=GetLastError();

if (i!=1 && i!=0) Print("Buy stop Error : "+error(i)+" at "+Symbol()+" "+Period());

}

if (StopLoss>0) {SL=NormalizeDouble(NormalizeDouble(OrderOpenPrice()+Range*rs*Point-sps*Point,Digits)+StopLoss*sls*Point,Digits);}else{SL=0;}

if (TakeProfit>0) {TP=NormalizeDouble(NormalizeDouble(OrderOpenPrice()+Range*rs*Point-sps*Point,Digits)-TakeProfit*tps*Point,Digits);}else{TP=0;}

if (OrderSend(Symbol(),OP_SELLLIMIT,lots,NormalizeDouble(OrderOpenPrice()+Range*rs*Point-sps*Point,Digits),Slippage,SL,TP,coms,ms,0,Red)==-1) {

i=GetLastError();

if (i!=1 && i!=0) Print("Sell stop Error : "+error(i)+" a "+Symbol()+" "+Period());

}

}

il codice completo è in allegato. Sto pensando che forse l'EA dovrebbe leggere l'ultimo ordine chiuso e fare direttamente 1 ordine aperto. Ma non ne ho idea.

Si prega di aiutare chiunque . Grazie mille.

File:
miku_test.mq4  15 kb
 

Problema di codifica

Ok ho un pezzo di codice che sembra causare l'errore OrderSend #130. Ho controllato le impostazioni di Stop Loss e Take Profit e dovrebbero essere ben lontani dalla distanza minima richiesta se si inserisce un ordine. Ho anche normalizzato i numeri per assicurarmi che si adattino ai parametri del sito. Quindi la mia ipotesi è che ci deve essere un problema con il prezzo Ask o il prezzo Bid che riceve e quindi il server non lo accetta.

Questo è il codice della sezione in cui dovrebbe piazzare un ordine di acquisto:

RefreshRates();

ticket = OrderSend(Symbol(),openType,lots,Ask,Slippage,SL,TP,comment,ExpertMagicNumber,0,Color);

C'è qualcosa di speciale che dovrei fare all'Ask per assicurarmi che si adatti a ciò che il sito sta cercando quando riceve l'ordine? Ho solo dato per scontato che avrebbe ottenuto i prezzi esattamente come il sito li ha dati.

 

Ciao c'è un BUON sistema che funziona, inviato da JoeSmoe

Sarebbe utile se qualcuno sapesse come creare il più semplice EA che apre la posizione solo quando c'è un breakout - questo sarebbe di grande aiuto. Ho provato, ma non so come.

migliore,

j

 

Come includere condizionatamente un file come parte di un EA?

Salve,

Ho postato questo in un'altra sezione del forum, ma poi ho scoperto questa sezione. Vi prego di scusare il doppio post...

È possibile includere condizionatamente un file come parte di un EA? Anche se la sintassi può essere scorretta, il concetto è...

switch(MASTER_PERIOD)

{

caso 30:

#include ;

break;

caso 240:

#include ;

break;

}

...con MASTER_PERIOD che è una variabile Extern.

Apprezzo e attendo i vostri commenti, suggerimenti ed esempi su come realizzare questo!

Saluti,

DMMcCollum

 

Come leggere/recuperare il prezzo in un certo momento?

Io e il mio amico stiamo lavorando su un EA. Ad un certo punto (l'EA) ha bisogno di leggere e recuperare il prezzo ad una certa ora, diciamo, 17:00 EST... ecc.

Qualche senior può per favore consigliare come farlo, invece di contare le barre di prezzo all'indietro? Forse c'è già una funzione scritta per questo. Gentilmente aiutatemi. Grazie a tutti e Dio vi benedica!

B rgds/abbondanza

 
 

Modifica

Steven_1974:
Ok ho un pezzo di codice che sembra causare l'errore OrderSend #130. Ho controllato le impostazioni di Stop Loss e Take Profit e dovrebbero essere ben lontani dalla distanza minima richiesta se si inserisce un ordine. Ho anche normalizzato i numeri per assicurarmi che si adattino ai parametri del sito. Quindi la mia ipotesi è che ci deve essere un problema con il prezzo Ask o il prezzo Bid che riceve e quindi il server non lo accetta.

Questo è il codice della sezione in cui dovrebbe piazzare un ordine di acquisto:

RefreshRates();

ticket = OrderSend(Symbol(),OP_BUY,lots,Ask,Slippage,Bid - SL*Point,Ask + TP*Point,comment,ExpertMagicNumber,0,Color);

ticket = OrderSend(Symbol(),OP_SELL,lots,Bid,Slippage,Ask + SL*Point,Bid - TP*Point,comment,ExpertMagicNumber,0,Color);

C'è qualcosa di speciale che dovrei fare all'Ask per assicurarmi che si adatti a ciò che il sito sta cercando quando riceve l'ordine? Ho solo dato per scontato che avrebbe ottenuto i prezzi esattamente come il sito li ha dati.

modifica come sopra

OTR

 

JoseMoe Sistema EA

janekpietrzyk:
Sarebbe utile se qualcuno sapesse come creare il più semplice EA che apre la posizione solo quando c'è un breakout - questo sarebbe di grande aiuto. Ho provato, ma non so come fare.

migliore,

j

trova RonaldRaygun EA in quel thread (100 300 pips al giorno...)

OTR

 

Errore di dati non abbinati

Ciao Coders

Sto ancora imparando i miei primi passi in MQL-Code.

Qual è la ragione quando ho il seguente messaggio nel diario:

Testgenerator:

unmatched data error ( limite di volume 159 al 2009.05.06 19 15 superato )

dove devo guardare nel codice?

Grazie

Motivazione: