jarikn: Ragazzi, aiutatemi a creare un allarme per un indicatore. Voglio testare una combinazione di diversi indicatori, ma ho bisogno di una funzione di avviso. Voglio che l'avviso sia mostrato solo una volta quando appare la freccia. Se non siete duri per favore aiutatemi a scrivere una tale funzione, non posso farlo, gli avvisi appaiono un minuto intero o tutto il tempo, anche mt4 si blocca.
Un'altra domanda: perché questo indicatore è un carico pesante per la CPU? Apro 10 coppie di valute e mt4 si impantana. Come un robot di trading forex, è necessario utilizzare gli indicatori mt4 come indicatori.
Ciao a tutti, ho un indicatore che mostra l'angolo del trend in gradi (non normalizzato però). Tutto è a posto sul grafico. Può essere sulla curva angolare stessa (blu) o sulla sua curva media (verde) - Fig. 1. Quando si chiama l'indicatore nell'Expert Advisor attraverso double Custom = iCustom(Symbol(), window, "Angle", 0, 1), il programma produce dei numeri enormi - Figura 2. La finestra di dialogo - periodo del grafico, "Angle" - nome dell'indicatore, 0 - buffer zero dove viene calcolata la linea blu (posso mettere 1 - buffer MA verde, ma il risultato sarà simile), 1 - spostamento. Quale potrebbe essere il problema?
Свойства объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Ho scritto un EA e tutto sembra funzionare. Ma il fatto è che gli ordini dovrebbero essere chiusi all'incrocio degli slips. Per essere più precisi, solo il primo ordine viene chiuso, e non importa da che parte è andato, allora il log genera l'errore OrderClose error 4051. Qual è il problema?
//-----------------------------------------------------------if (CountSell() == 0 && mama1<mama2 && cci>verh && cci1>verh && cci<cci1)
{
tiket = OrderSend(Symbol(), OP_SELL,Lots,Bid,Slippage,0,0,"",Magic,0, Red);
if (tiket>0)
{
SL=NormalizeDouble(Bid+StopLoss*Point,Digits);
TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);
if (OrderSelect(tiket, SELECT_BY_TICKET))
if (!OrderModify(tiket,OrderOpenPrice(),SL,TP,0))
Print("Ошибка модификации ордера на продажу");
} elsePrint("Ошибка открытия ордера на продажу");
}
if (CountBuy() == 0 && mama1>mama2 && cci<nuz && cci1<nuz && cci>cci1)
{
tiket = OrderSend(Symbol(), OP_BUY,Lots,Ask,Slippage,0,0,"",Magic,0,Blue);
if (tiket>0)
{
SL=NormalizeDouble(Ask-StopLoss*Point,Digits);
TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
if (OrderSelect(tiket, SELECT_BY_TICKET))
if (!OrderModify(tiket,OrderOpenPrice(),SL,TP,0))
Print("Ошибка модификации ордера на покупку");
} elsePrint("Ошибка открытия ордера на покупку");
}
if(mama1>mama2 && CountSell()>0)
{
for(int i = OrdersTotal() -1;i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderMagicNumber()==Magic && OrderType()==OP_SELL)
OrderClose(OrderType(),OrderLots(),Ask,Slippage,Black);
}
}
}
if(mama1<mama2 && CountBuy()>0)
{
for(int i = OrdersTotal() -1;i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderMagicNumber()==Magic && OrderType()==OP_BUY)
OrderClose(OrderType(),OrderLots(),Bid,Slippage,Black);
}
}
}
Tango_X: Potete dirmi per favore come rendere programmaticamente selezionato un oggetto? Non ho trovato niente del genere nell'Aiuto
Se usate la funzione standard di creazione degli oggetti, l'impostazione predefinita è selection = true. Per esempio, per la linea di tendenza, la quarta linea dal basso:
bool TrendCreate(constlong chart_ID = 0, // ID графикаconststring name = "TrendLine", // имя линииconstint sub_window = 0, // номер подокнаdatetime time1 = 0, // время первой точкиdouble price1 = 0, // цена первой точкиdatetime time2 = 0, // время второй точкиdouble price2 = 0, // цена второй точкиconstcolor clr = clrRed, // цвет линииconstENUM_LINE_STYLE style = STYLE_SOLID, // стиль линииconstint width = 4, // толщина линииconstbool back = false, // на заднем планеconstbool selection = true, // выделить для перемещенийconstbool ray_right = false, // продолжение линии вправоconstbool hidden = true, // скрыт в списке объектовconstlong z_order = 0) // приоритет на нажатие мышью
Prova questo, dovrebbe funzionare.
No. Continua a suonare un allarme. Ecco l'intero codice e le indulgenze. Forse sto facendo qualcosa di sbagliato
Ragazzi, aiutatemi a creare un allarme per un indicatore. Voglio testare una combinazione di diversi indicatori, ma ho bisogno di una funzione di avviso. Voglio che l'avviso sia mostrato solo una volta quando appare la freccia. Se non siete duri per favore aiutatemi a scrivere una tale funzione, non posso farlo, gli avvisi appaiono un minuto intero o tutto il tempo, anche mt4 si blocca.
Aggiungere una variabile
se non è un segnale la variabile diventa falsa
se (segnale e variabile== falso) {
allarme;
variabile=true;
}
Aggiungere una variabile
la variabile diventa falsa se appare una nuova candela
se (segnale e variabile== falso) {
allarme;
variabile=true;
}
non sarà più di 1 per candelaOk, grazie.
Ok, grazie.
L'ho cambiato lì.
Ciao a tutti, ho un indicatore che mostra l'angolo del trend in gradi (non normalizzato però). Tutto è a posto sul grafico. Può essere sulla curva angolare stessa (blu) o sulla sua curva media (verde) - Fig. 1. Quando si chiama l'indicatore nell'Expert Advisor attraverso double Custom = iCustom(Symbol(), window, "Angle", 0, 1), il programma produce dei numeri enormi - Figura 2. La finestra di dialogo - periodo del grafico, "Angle" - nome dell'indicatore, 0 - buffer zero dove viene calcolata la linea blu (posso mettere 1 - buffer MA verde, ma il risultato sarà simile), 1 - spostamento. Quale potrebbe essere il problema?
Potresti dirmi come rendere un oggetto selezionabile? Non ho trovato niente del genere nell'Aiuto
OBJPROP_SELECTED
Selezione dell'oggetto
mql5
mql4
Potete dirmi per favore come rendere programmaticamente selezionato un oggetto? Non ho trovato niente del genere nell'Aiuto
Se usate la funzione standard di creazione degli oggetti, l'impostazione predefinita è selection = true. Per esempio, per la linea di tendenza, la quarta linea dal basso: