Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Chiedo aiuto per scrivere un semplice robot di trading basato sull'indicatore i-Regr. Se fatto bene, garantisco un pagamento ragionevole.
Se qualcuno è interessato può scrivere a ma.gog@mail.ru
L'idea generale è la seguente:
1. L'expert advisor dovrebbe piazzare ordini pendenti stop e limit sui frattali (buy stop, sell stop, buy limit, sell limit), il tempo di scadenza degli ordini dovrebbe essere impostato (ore, minuti).
2. I tipi di ordine devono essere commutabili (o ordini stop e limit insieme; o separatamente: solo ordini stop, solo ordini limit),
3. La distanza dall'ordine che viene piazzato al frattale dovrebbe essere impostata in pip, e per gli ordini stop separatamente, e per gli ordini limite separatamente.
4. StopLoss e TakeProfit sono fissi, impostati immediatamente.
5. Vuoi avere un trailing stop da un pip e disabilitarlo.
6. Il lotto dovrebbe essere riparato. Ma è anche possibile creare una gestione del denaro.
7. Lo spread deve essere preso in considerazione negli ordini: (ordine di acquisto + spread, ordine di vendita - spread)
Per contattare: Cashinroman@yandex.ru
Qualcuno può capire questo codice, perché nella sterlina tester USD H4 funziona alla grande
E sulla demo e sul reale versa solo qualcosa per cambiarlo sps forse guarda nella storia
extern double Init_line1 = 1,9620;
extern double Init_line2 = 1,9630;
extern double Init_line3 = 1,9640;
extern double Init_line4 = 1,9650;
extern int Step_line = 40;
extern double Lots = 1;
extern int ColUr = 2;
int i, j;
int a[4][4];//1-acquisto, 2-vendita, 3-acquisto, 4-vendita
doppio minlot;
datetime LastWork;
//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'esperto |
//+------------------------------------------------------------------+
//********************************************************************
//verificare se ci sono posizioni aperte,
//mette i numeri delle posizioni aperte nell'array a[4][4].
bool Pred()
{
int NL; //quali righe sono nell'array
per (i=0; i<=4; i++)
per (j=0; j<=4; j++)
a[i][j]=-1;//tutti in -1
for (i=0; i<OrdersTotal(); i++) //invertire tutti gli ordini
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)//selezionare l'ordine se non è possibile
pausa;
if (OrderSymbol()==Symbol())//ci sono posizioni per questo simbolo
if (OrderComment()=="a1")//c'è un segno?
NL=0;
else if (OrderComment()=="a2")//è la nostra etichetta?
NL=1;
else if (OrderComment()=="a3")//è la nostra etichetta?
NL=2;
else if (OrderComment()=="a4")//è il nostro tag?
NL=3;
else
continua;//no? allora continua la ricerca
//abbiamo i nostri ordini, occupiamocene
if (OrderType()==OP_BUY)//se la posizione è Buy
a[NL][0]=OrderTicket();//ricorda il suo numero
else if (OrderType()==OP_SELL)//se la posizione è in vendita
a[NL][1]=OrderTicket();//ricorda il suo numero
else if(OrderType()==OP_BUYSTOP)//se la posizione è in attesa di acquisto
a[NL][2]=OrderTicket();//ricorda il suo numero
else if (OrderType()==OP_SELLSTOP)//se la posizione è in attesa di vendita
a[NL][3]=OrderTicket();//ricorda il suo numero
}//fine del ciclo
}
//********************************************************************
/Esempio:
//livello di controllo 1,9420, prezzo attuale 1,9277 o 1,9537 trovare vicino al livello inferiore
//а)|1.9420-1.9277|*10000/40=3.575
//3.575-3=0.575; 0.575*40=23; 1.9277-0.0023=1.9255 livello superiore più vicino
//б)|1.9420-1.9537|*10000/40=2.925
// 2.925-2=0.925; 0.925*40=37; 1.9537-0.0037=1.9500 Livello basso più vicino
int init()
{
LastWork = -1;
}
//********************************************************************
int deinit()
{
ritorno(0);
}
//********************************************************************
int start()
{
se (CurTime() - LastWork < 5)
return(0); // non più di una volta ogni 5 secondi
LastWork = CurTime();
Pred();//tutti raccolti
Comment("a[1][1]=",a[0][0]," a[0][2]=",a[0][1]," a[1][3]=",a[0][2]," a[1][4]=",a[0][3],"\n",
"a[2][1]=",a[1][0], "a[2][2]=",a[1][1], "a[2][3]=",a[1][2], "a[2][4]=",a[1][3],"\n"
"a[3][1]=",a[2][0]," a[3][2]=",a[2][1], "a[3][3]=",a[2][2], "a[3][4]=",a[2][3],"\n"
"a[4][1]=",a[3][0]," a[4][2]=",a[3][1]," a[4][3]=",a[3][2]," a[4][4]=",a[3][3],"\n")
stringa coment;
doppio Init_line,qw,qw1,uo,w, sl, op;
for(i=0;i<ColUr;i++)//eseguire l'array a[4][4]
{
//necessità ulteriore
coment=";
se (i==0)
{
coment="a1";
Init_line=Init_line1;
}
else if(i==1)
{
coment="a2";
Init_line=Init_line2;
}
altrimenti se(i==2)
{
coment="a3";
Init_line=Init_line3;
}
altrimenti se(i==3)
{
coment="a4";
Init_line=Init_line4;
}
//cercare il livello più vicino
w=(MathAbs(Bid-Init_line)*1/Point)/Step_line;//coefficiente
se (Bid>=Init_line)
qw=Step_line*(w-MathFloor(w));//numero di punti fino al livello più vicino
else
qw=Step_line-Step_line*(w-MathFloor(w));//numero di punti fino al livello più vicino
qw1=Step_line-qw;//numero di punti fino al livello più vicino
// Comment("Line1 ",Init_line," w=",((Bid-Init_line)*1/Point)/Step_line," qw=",qw," NewLine",Bid-(qw)*Point);
if ((a[i][0]==-1)&&(a[i][1]==-1)&&(a[i][2]==-1)&&(a[i][3]==-1))//нету открытых
{
//postare gli ordini
se (qw+4>=15)// possiamo mettere un'attesa di vendita
OrderSend(Symbol(), OP_SELLSTOP, Lots, Bid-(qw)*Point,0,Bid-Point*(qw-2*Step_line),0,0,CLR_NONE);
else //impostare il livello successivo in basso
OrderSend(Symbol(), OP_SELLSTOP, Lots, Bid-Point*(qw+Step_line),0,Bid-Point*(qw+Step_line-2*Step_line),0,coment,0,0,CLR_NONE);
se (qw1>=15)//può mettere un'attesa per l'acquisto
OrderSend(Symbol(), OP_BUYSTOP, Lots, Ask+(qw1-4)*Point,0,Ask+Point*(qw1-4-2*Step_line),0,coment,0,0,CLR_NONE);
else// mettilo al livello superiore
OrderSend(Symbol(), OP_BUYSTOP, Lots, Ask+Point*(qw1-4+Step_line),0,Ask+Point*(qw1-4+Step_line-2*Step_line),0,coment,0,0,CLR_NONE);
}
//!!!!!!!!!!!!!
else if (a[i][0]!=-1)//acquisterà
{//open buy
OrderSelect(a[i][0],SELECT_BY_TICKET, MODE_TRADES);//seleziona l'ordine aperto
uo=OrderOpenPrice();//il suo prezzo aperto - livello
op=uo;
se (uo<(Ask-(qw-4)*Point))//il prezzo di apertura è inferiore al minimo attuale
//controllare SL open, se necessario modificare
se (OrderStopLoss()<(Ask-Point*(qw+4+2*Step_line))//SL è inferiore a 2 livelli rispetto al prezzo corrente
OrderModify(a[i][0],NULL,Ask-Point*(qw+4+2*Step_line),NULL,NULL,CLR_NONE);
sl=OrderStopLoss();
//decidere sull'attesa
se (a[i][3]!=-1)//serve sellstop
{
OrderSelect(a[i][3],SELECT_BY_TICKET, MODE_TRADES); //posizionamento in attesa
uo=OrderOpenPrice();//prezzo aperto - livello
if(uo!=sl)//(Bid-Point*(qw+2*Step_line)))//il livello aperto è uguale al BUY stop
OrderModify(a[i][3],sl, sl+Point*(2*Step_line),NULL,NULL,CLR_NONE)
// OrderModify(a[i][3],Bid-Point*(qw-2*Step_line),Bid+qw*Point,NULL,NULL,NULL);
}
else if (a[i][3]==-1)//ilturn to buy è stato aperto, sellstop dovrebbe essere impostato
OrderSend(Symbol(), OP_SELLSTOP, Lots, sl,0,sl+Point*(2*Step_line),NULL,coment,0,0,0,CLR_NONE);
// OrderSend(Symbol(), OP_SELLSTOP, Lots, Bid-(qw+2*Step_line)*Point,0,Bid-Point*(qw),NULL,coment,0,0,0);
}
//!!!!!!!!!!!!!
else if (a[i][1]!=-1)//stand sell
{
OrderSelect(a[i][1],SELECT_BY_TICKET, MODE_TRADES);//seleziona l'ordine aperto
uo=OrderOpenPrice();//prezzo aperto - livello
op=uo;
se (uo>(Bid+(qw1)*Point))//il prezzo di apertura è superiore al livello superiore attuale
//controllare SL open, se necessario modificare
se (OrderStopLoss()>(Bid+Point*(qw1+2*Step_line)))//SL è superiore a 2 livelli rispetto al prezzo corrente
OrderModify(a[i][1],NULL,Bid+Point*(qw1+2*Step_line),NULL,NULL,CLR_NONE);
sl=OrderStopLoss();
//prendere un rinvio
se (a[i][2]!=-1)// vale la pena di acquistare
{
OrderSelect(a[i][2],SELECT_BY_TICKET, MODE_TRADES); //posiziona in attesa
uo=OrderOpenPrice();//prezzo aperto - livello
se (uo!=sl)//il livello aperto è uguale allo stop SELL
OrderModify(a[i][2],sl,sl-(2*Step_line)*Point,NULL,NULL,CLR_NONE);
// OrderModify(a[i][2],Ask+Point*(qw1-4+2*Step_line), Ask+(qw1-4)*Point,NULL,NULL,NULL);
}
else if (a[i][2]==-1)//si è aperto il turn to sell, dobbiamo impostare il buystop
OrderSend(Symbol(), OP_BUYSTOP, Lots, sl,0,sl-Point*(2*Step_line),NULL,0,0,CLR_NONE);
//OrderSend(Symbol(), OP_BUYSTOP, Lots, Ask+(qw1-4+2*Step_line)*Point,0,Ask+Point*(qw1-4),NULL,coment,0,0,0);
}
}
ritorno (0);
}
Cari signori programmatori! Vorrei chiedere aiuto per scrivere un EA. Non parlo ancora MQL. Se il mio EA è redditizio, sono pronto a condividere i miei profitti con la persona che lo ha scritto, o descrivere le vostre condizioni. Penso che dovrebbe essere redditizio.
A proposito di "condividere il premio" - questo è degno)
Ma è più interessante "descrivere i termini".
Le mie condizioni: ora scrivo per i soldi, non pretendo di guadagnare.
Contatti nel profilo
Cari visitatori di questo sito. Bisogna scrivere un Expert Advisor molto semplice. Ho un suggerimento. Io ti do una condizione, tu mi dai l'Expert Advisor. Potrai anche utilizzare la mia semplice strategia. Vi sarei grato se poteste spiegare come cambiare il volume degli ordini nell'EA, quando questo è necessario. Darò i termini durante la corrispondenza personale o ICQ 300333834 o mail forexbmf@yandex.ru Andrew.
Se vuoi fare trading su di esso gratuitamente (preferibilmente reale o demo 1-2 mesi).
Altrimenti, qui https://www.mql5.com/ru/job
Однако выслушав условие вы поймёте, что действительно имеет смысл такая торговля.
Ottobre, non hai idea di quante persone prima di te hanno detto più o meno la stessa cosa e si sono lasciate andare.
Cari visitatori del sito. Bisogna scrivere un EA molto semplice.
Vedere la procedura guidata EA online: http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/
Supporto della lingua russa disponibile