Domande dai principianti MQL4 MT4 MetaTrader 4 - pagina 170
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
Ciao, faccio uno screenshot dello schermo usando la funzione:
WindowScreenShot ("Screenshotname.png",1280,720); ma salva tutto nella cartella Files, e ho bisogno di specificare il percorso in un'altra cartella che lo salverebbe!
Ciao!
Originariamente, la possibilità di bloccaggio di emergenza con margine libero è stata implementata nell'Expert Advisor. ecco una parte del codice
se(AccountFreeMargin() <= inpMarginLock)
{
gv.isEmergencyLock = true;
.....................
Col tempo, è diventato chiaro che questo non era del tutto conveniente.
Vorrei implementare un blocco di emergenza via drawdown.
Cioè quando si raggiungono diciamo -100 dollari sul deposito il blocco dovrebbe essere attivato.
Vorrei chiedere il mio aiuto, se posso aggiungere questo codice al posto diAccountFreeMargin(), per attivare
Aiutatemi a scrivere nel codice invece diFreeMargin() per avere luogo il blocco non sul margine libero, ma quando un drawdown sul deposito.
Grazie in anticipo!!!!!!!
Salve, ho un problema, quando premo F9 ottengo il solito menu per aprire un ordine ma devo scegliere una coppia di simboli, non come prima, il menu esce per il simbolo che ho aperto, consigliatemi come risolvere il problema.
Servizio --> Impostazioni --> Trading
Buon pomeriggio)
Aiuto per favore, sono un newbie..... cercando di fare un EA sull'intersezione di super-segnali-canale e ZigZag indicatori trovato un modello. Ci ho buttato dentro gli indicatori, ma gli ordini non si aprono ancora. Ecco una parte del codice.... cosa sto facendo di sbagliato...?
void Signal(double& ar[][],bool& op[],bool& cl[])
{
int trd=-1;
doppio up=0.0,dn=0.0;
//---
ArrayInitialize(cl,false);
ArrayInitialize(op,false);
//collegare l'indicatore del filtro ZigZag
up=iCustom(_Symbol,tf, "ZigZag",InpDepth,InpDeviation,InpBackstep,0,0);//nome, impostazioni, buffer, candela iniziale per BUY
dn=iCustom(_Symbol,tf, "ZigZag",InpDepth,InpDeviation,InpBackstep,0,0);//nome, impostazioni, buffer, inizio candela per SELL
se(dn==EV) trd=0;
if(up==EV) trd=0; //Commento(trd);
//collegare l'indicatore di inversione e di uscita
up=iCustom(_Symbol,tf, "SuperSignalsChannel_1",SignalGap_1,ShowBars_1,dist_1,0,0);//start candle for BUY
dn=iCustom(_Symbol,tf, "SuperSignalsChannel_1",SignalGap_1,ShowBars_1,dist_1,1,0,0);//inizio candela per SELL
if(up>0.0 && up<EV) cl[1]=true;
if(dn>0.0 && dn<EV) cl[0]=true;
up=0.0;
dn=0,0;
// indicatore di base, con cui entriamo nel mercato
interruttore(Indicatore)
{
caso SuperSignalsChannel:
up=iCustom(_Symbol,tf, "SuperSignalsChannel",SignalGap,ShowBars,dist_0,1,0);//start candle for BUY
dn=iCustom(_Symbol,tf, "SuperSignalsChannel",SignalGap,ShowBars,dist_0,0,0);//inizio candela per SELL
pausa;
P.S. Se c'è un thread simile sul forum da qualche parte, lasciate il link, per favore
Buon pomeriggio. Ho questo EA, sto cercando di modificarlo per soddisfare le mie esigenze, ma finora non è molto buono. Gli ordini si aprono al prezzo alto e basso, ma ho bisogno che sia alto + 5 pip. So che questo è responsabile di questo, ma non posso applicarlo nel codice. Spero di essere aiutato. Grazie))))
Buon pomeriggio. Ho questo EA, sto cercando di modificarlo per soddisfare le mie esigenze, ma finora non è molto buono. Gli ordini si aprono al prezzo alto e basso, ma ho bisogno che sia alto + 5 pip. So che questo è responsabile di questo, ma non posso applicarlo nel codice. Spero di essere aiutato. Grazie))))
extern string TimeTrade = "19:00"; // Время открытия позиции
extern int DistanceSet = 100;
extern int DistanceStopOrder = 5;
extern int DistanceLimitOrder = 5;
extern int TYPE = 0;
extern int TP = 50;
extern int SL = 4500;
extern double lot = 0.1;
extern int Magic_Number = 639713;
int init(){ return(0);}
int deinit(){ return(0);}
int start()
{
double SPREAD = MarketInfo(Symbol(),MODE_SPREAD)*Point;
double STOPLEVEL = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;
double pAsk=Ask+(DistanceSet)*Point;
double pBid=Bid-DistanceSet*Point;
if(Orders_Total( Magic_Number, Symbol()) == 0 )
{
//Установка ордеров
if(TYPE<=0)
{
// Здесь установим STOP-ордера
if(iHigh(Symbol(),PERIOD_D1,1)+SPREAD - STOPLEVEL > Ask)
OrderSend(Symbol(),OP_BUYSTOP,lot,iHigh(Symbol(),PERIOD_D1,1)+DistanceStopOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) - SL*Point,iHigh(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);
else Alert("Невозможно установить OP_BUYSTOP, цена слишком близка или выше High");
if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Bid)
OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1)-DistanceStopOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iLow(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);
else Alert("Невозможно установить OP_SELLSTOP, цена слишком близка или ниже Low");
}
if(TYPE>=1)
{
// Здесь установим LIMIT-ордера
if(iHigh(Symbol(),PERIOD_D1,1) - STOPLEVEL > Bid)
OrderSend(Symbol(),OP_SELLLIMIT,lot,iHigh(Symbol(),PERIOD_D1,1)-DistanceLimitOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iHigh(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);
else Alert("Невозможно установить OP_SELLLIMIT, цена слишком близка или выше High");
if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Ask)
OrderSend(Symbol(),OP_BUYLIMIT,lot,iLow(Symbol(),PERIOD_D1,1)+DistanceLimitOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) - SL*Point,iLow(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);
else Alert("Невозможно установить OP_BUYLIMIT, цена слишком близка или ниже Low");
}
}
return(0);
}
//---- Возвращает количество ордеров указанного эксперта(Маджик,Символ) ----//
int Orders_Total( int mn, string sym)
{
int num_orders=0;
for(int i= OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber() == mn && sym==OrderSymbol())
num_orders++;
}
return(num_orders);//---
}
//+------------------------------------------------------------------+
extern string TimeTrade = "19:00"; // Время открытия позиции
extern int DistanceSet = 100;
extern int DistanceStopOrder = 5;
extern int DistanceLimitOrder = 5;
extern int TYPE = 0;
extern int TP = 50;
extern int SL = 4500;
extern double lot = 0.1;
extern int Magic_Number = 639713;
int init(){ return(0);}
int deinit(){ return(0);}
int start()
{
double SPREAD = MarketInfo(Symbol(),MODE_SPREAD)*Point;
double STOPLEVEL = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;
double pAsk=Ask+(DistanceSet)*Point;
double pBid=Bid-DistanceSet*Point;
if(Orders_Total( Magic_Number, Symbol()) == 0 )
{
//Установка ордеров
if(TYPE<=0)
{
// Здесь установим STOP-ордера
if(iHigh(Symbol(),PERIOD_D1,1)+SPREAD - STOPLEVEL > Ask)
OrderSend(Symbol(),OP_BUYSTOP,lot,iHigh(Symbol(),PERIOD_D1,1)+DistanceStopOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) - SL*Point,iHigh(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);
else Alert("Невозможно установить OP_BUYSTOP, цена слишком близка или выше High");
if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Bid)
OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1)-DistanceStopOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iLow(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);
else Alert("Невозможно установить OP_SELLSTOP, цена слишком близка или ниже Low");
}
if(TYPE>=1)
{
// Здесь установим LIMIT-ордера
if(iHigh(Symbol(),PERIOD_D1,1) - STOPLEVEL > Bid)
OrderSend(Symbol(),OP_SELLLIMIT,lot,iHigh(Symbol(),PERIOD_D1,1)-DistanceLimitOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iHigh(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);
else Alert("Невозможно установить OP_SELLLIMIT, цена слишком близка или выше High");
if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Ask)
OrderSend(Symbol(),OP_BUYLIMIT,lot,iLow(Symbol(),PERIOD_D1,1)+DistanceLimitOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) - SL*Point,iLow(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);
else Alert("Невозможно установить OP_BUYLIMIT, цена слишком близка или ниже Low");
}
}
return(0);
}
//---- Возвращает количество ордеров указанного эксперта(Маджик,Символ) ----//
int Orders_Total( int mn, string sym)
{
int num_orders=0;
for(int i= OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber() == mn && sym==OrderSymbol())
num_orders++;
}
return(num_orders);//---
}
//+------------------------------------------------------------------+
Buon pomeriggio, per favore dite a un giovane adepto dove è sepolto il cane))
Ho modificato un po' Momentum, testato sembra che funzioni, ma quando provo ad usarlo in un Expert Advisor ottengo delle stranezze, sembra seguire l'algoritmo giusto, ma non so da dove viene lo 0,0449 extra.
input int InpMomPeriod=1; // Momentum Period
void OnTick()
{
double High1 = iCustom(Symbol(),PERIOD_CURRENT, "INdekators 1.0",InpMomPeriod,0,0);
}
Salve, cari programmatori.
Complimenti a voi!
C'è un EA che dopo aver chiuso gli ordini e inviato un messaggio,
Ho bisogno di disabilitare l'auto-trading sul terminale (premere il pulsante)
Non lo fa se l'utente è disconnesso dal server UPN.
Quando l'utente è connesso al server cps e il terminale è aperto, le finestre sono aperte,
l'Expert Advisor è in esecuzione, premendo il pulsante funziona bene
ma quando si esegue l'Expert Advisor, disconnettersi dal server PPS
e dopo aver ricevuto un messaggio che Expert Advisor ha funzionato
quando si torna all'UPU, il pulsante non viene premuto.
L'Expert Advisor è in esecuzione sul server UPP Windows Server 16.
Questa parte di codice è responsabile di questa funzione
se(AutotradeOFF)PressOrReleaseAutotrade();
Conclusione - questa funzione non funziona quando l'utente è disconnesso dal server VPS.
Forse ci sono delle alternative per risolvere il problema?
Quale può essere il problema?
Per favore aiutatemi a risolvere questo problema.
Il codice è allegato.
Grazie mille in anticipo per qualsiasi aiuto per risolvere questo problema!