forward666: Quando eseguo il robot, apre immediatamente una posizione che ovviamente non riflette la realtà del grafico, quindi va in profondo rosso. Come faccio a fare in modo che questa posizione non si apra subito quando lancio il robot?
"Il robot è una creatura in cui il suo creatore mette tutto ciò che lui (il creatore) vuole, e tutto ciò che lui (il creatore) è bravo a fare. Se pensate che tutti gli altri su questo forum sappiano di cosa è imbottito il vostro "robot", non è del tutto vero.
Yedelkin: Un "robot" è una creatura in cui il suo creatore mette tutto quello che lui (il creatore) vuole ed è bravo a fare. Se pensate che tutti gli altri su questo forum sappiano di cosa è imbottito il vostro "robot", non è del tutto vero.
forward666: non c'è niente di complicato! ma la domanda rimane:)
Potresti applicarelo Styler nell'editor e poi incollare il codice correttamente (pulsante SRC)? Altrimenti, senza editor a portata di mano, è difficile da leggere.
Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
//--- parametri di ingresso //input double Lots = 0.1; /*Lots*/ //posizione volume input int Shift = 10; /*Shift*/ //la grandezza del salto di prezzo per aprire la posizione input int Limit=100; /*Limit*/ //Dimensione della perdita in punti per chiudere la posizione input int Prof=10; input int MA_Period=50; // periodo della media mobile
int maHandle; // handle dell'indicatore della media mobile double maVal[3]; // array statico per memorizzare i valori dell'indicatore Moving Average
bool first; doppio a,b,lotti; //+------------------------------------------------------------------+ //| Funzione di inizializzazione dell'esperto | //+------------------------------------------------------------------+ int OnInit() {
maHandle=iMA(NULL,0,MA_Period,2,MODE_SMA,PRICE_CLOSE); se(maHandle<0) { Alert("Errore nella creazione di indicatori - numero di errore: ",GetLastError(),"!"); ritorno(-1); }
Se volete inserire un piccolo pezzo di codice, cliccate su SRC come nell'immagine e inserite il codice. Se c'è tanto codice quanto ne inserisci, allega il file con il codice.
Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
Se volete inserire un piccolo pezzo di codice, cliccate su SRC come mostrato nell'immagine e inserite il codice. Se c'è tanto codice quanto ne inserisci, allega il file con il codice.
Chi ha uno styler a portata di mano, può dirmi dov'è l'errore, che la posizione si apre immediatamente, non è chiaro in quale direzione e non è chiaro perché?
forward666: Chi ha uno styler a portata di mano, può dirmi dov'è l'errore, che la posizione si apre immediatamente, non è chiaro in che direzione e non è chiaro perché?
Proverò a cercarlo sul mio computer in serata. Cos'è lo "Styler" - guarda il link automatico nel tuo messaggio.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Un "robot" è una creatura in cui il suo creatore mette tutto quello che lui (il creatore) vuole ed è bravo a fare. Se pensate che tutti gli altri su questo forum sappiano di cosa è imbottito il vostro "robot", non è del tutto vero.
#include <Trade/Trade.mqh>
#include <Trade/SymbolInfo.mqh>
#include <Trade/PositionInfo.mqh>
CTrade Trade;
CSymbolInfo Sym;
CPositionInfo Pos;
//--- parametri di ingresso
//input double Lots = 0.1; /*Lots*/ //posizione volume
input int Shift = 10; /*Shift*/ //la grandezza del salto di prezzo per aprire la posizione
input int Limit=100; /*Limit*/ //Dimensione della perdita in punti per chiudere la posizione
input int Prof=10;
input int MA_Period=50; // periodo della media mobile
int maHandle; // handle dell'indicatore della media mobile
double maVal[3]; // array statico per memorizzare i valori dell'indicatore Moving Average
bool first;
doppio a,b,lotti;
//+------------------------------------------------------------------+
//| Funzione di inizializzazione dell'esperto |
//+------------------------------------------------------------------+
int OnInit()
{
maHandle=iMA(NULL,0,MA_Period,2,MODE_SMA,PRICE_CLOSE);
se(maHandle<0)
{
Alert("Errore nella creazione di indicatori - numero di errore: ",GetLastError(),"!");
ritorno(-1);
}
first=false;
if(!Sym.Name(_Symbol))
{
Alert("CSymbolInfo initialization error, try again");
ritorno(-1);
}
Print("Inizializzazione dell'Expert Advisor fallita");
ritorno(0);
}
//+------------------------------------------------------------------+
//| Funzione di deinizializzazione dell'esperto |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
IndicatorRelease(maHandle);
}
//+------------------------------------------------------------------+
//| Funzione tick esperto |
//+------------------------------------------------------------------+
void OnTick()
{
se(CopyBuffer(maHandle,0,0,3,maVal)<0)
{
Alert("Indicator buffer copy error - error number:",GetLastError());
ritorno;
}
if(!Sym.RefreshRates())
{
ritorno;
}
se(primo)
{
a=Sym.Ask();
b=Sym.Bid();
first=false;
ritorno;
}
Lotti=AccountInfoDouble(ACCOUNT_FREEMARGIN)*0.66/1000/SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE);
Lotti=MathMin(999,MathMax(1,Lotti));
Lots=NormalizeDouble(Lots,2);
se(Pos.Select(_Symbol))
{
se(Pos.Profit()>2)
{
Trade.PositionClose(_Symbol,Sym.Spread()*2);
}
else
{
se(Pos.PositionType()==POSITION_TYPE_BUY)
{
if((Pos.PriceOpen()-Sym.Ask())/Sym.Point()>Limit)// || Sym.Bid()<maVal[0]-0.0005)
{
Trade.PositionClose(_Symbol,Sym.Spread()*2);
}
}
else if(Pos.PositionType()==POSITION_TYPE_SELL)
{
if((Sym.Bid()-Pos.PriceOpen())/Sym.Point()>Limit)// || Sym.Ask()>maVal[0]+0.0005)
{
Trade.PositionClose(_Symbol,Sym.Spread()*2);
}
}
}
}
else
{
if(b-Sym.Bid()>=Shift*Sym.Point() && maVal[0]>maVal[1] && maVal[1]>maVal[2] && Sym.Bid()<maVal[0])
{
Trade.SetDeviationInPoints(Sym.Spread()*2);
Trade.PositionOpen(_Symbol,ORDER_TYPE_SELL,Lots,Sym.Bid(),0,0,"); //Sym.Bid()+0.0030
// Trade.Sell(Lots,_Symbol,0,0,0,");
Stampa(__FUNCTION__,"():Vendi");
}
if(Sym.Ask()-a>=Shift*Sym.Point() && maVal[0]<maVal[1] && maVal[1]<maVal[2] && Sym.Ask()>maVal[0])
{
Trade.SetDeviationInPoints(Sym.Spread()*2);
Trade.PositionOpen(_Symbol,ORDER_TYPE_BUY,Lots,Sym.Ask(),0,0,"); //Sym.Ask()-0.0030
// Trade.Buy(Lots,_Symbol,0,0,0,");
Stampa(__FUNCTION__,"():Buy");
}
}
a=Sym.Ask();
b=Sym.Bid();
}
//+------------------------------------------------------------------+
avanti666:
Se volete inserire un piccolo pezzo di codice, cliccate su SRC come nell'immagine e inserite il codice. Se c'è tanto codice quanto ne inserisci, allega il file con il codice.
avanti666:
Se volete inserire un piccolo pezzo di codice, cliccate su SRC come mostrato nell'immagine e inserite il codice. Se c'è tanto codice quanto ne inserisci, allega il file con il codice.
Capito!
Non riesco a trovare nulla con il codice, proverò a cercarlo sul mio computer in serata. E cos'è lo "Styler" - guarda il link.
Grazie! Se puoi darmi qualche consiglio, sarebbe fantastico!
Leggerò di più sullo styler.