Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
C'è un indicatore MT5 "Grid Builder" che disegna linee orizzontali in incrementi di prezzo. È possibile selezionare ad esempio 100p, 200p ecc. E costruisce una griglia orizzontale su e giù con un determinato passo. Ma ha un problema, per esempio, quando disegno livelli orizzontali sul timeframe H4 (ho messo linee orizzontali da strumenti di disegno nel terminale) e passo a qualsiasi altro timeframe, tutte le mie linee vengono rimosse. Rimangono solo i livelli orizzontali dell'indicatore. Come posso correggere questo errore nel codice? Per garantire che i miei livelli orizzontali non vengano mai cancellati. Ecco il codice dell'indicatore.
//+------------------------------------------------------------------+//| GridBuilder.mq5 |//| Copyright 2015, AM2 |//| https://www.forexsystems.biz |//+------------------------------------------------------------------+
#property copyright "Copyright 2015, AM2"
#property link "https://www.forexsystems.biz"
#property version "1.00"
#property indicator_chart_window
//---- для расчёта и отрисовки индикатора использовано ноль буферов
#property indicator_buffers 0//---- использовано всего ноль графических построений
#property indicator_plots 0//--- входные параметры
input int count = 50; //количество линий вверх вниз от цены
input int step = 333; //шаг линий
input double pr = 1.4622; //цена от которой пляшем//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int OnInit()
{
//--- indicator buffers mapping
ObjectsDeleteAll(0,0,OBJ_HLINE);
//---return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+void OnDeinit(constint reason)
{
Comment("");
ObjectsDeleteAll(0,0,OBJ_HLINE);
}
//+------------------------------------------------------------------+ //| Создает горизонтальную линию | //+------------------------------------------------------------------+ bool HLine(conststring name="HLine",double price=0)
{
//--- создадим горизонтальную линию if(!ObjectCreate(0,name,OBJ_HLINE,0,0,price))
{
Print(__FUNCTION__,
": не удалось создать горизонтальную линию! Код ошибки = ",GetLastError());
return(false);
}
//--- установим цвет линии
ObjectSetInteger(0,name,OBJPROP_COLOR,clrGreen);
ObjectSetInteger(0,name,OBJPROP_WIDTH,1);
return(true);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+int OnCalculate(constint rates_total,
constint prev_calculated,
const datetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
double price=pr;
//--- создадим горизонтальную линию for(int i=0;i<=count;i++)
{
HLine("HLine"+(string)i,price+step*i*_Point);
HLine("HLine"+(string)(i+count+1),price-step*i*_Point);
}
//--- return value of prev_calculated for next callreturn(rates_total);
}
//+------------------------------------------------------------------+
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
C'è un indicatore MT5 "Grid Builder" che disegna linee orizzontali in incrementi di prezzo. È possibile selezionare ad esempio 100p, 200p ecc. E costruisce una griglia orizzontale su e giù con un determinato passo. Ma ha un problema, per esempio, quando disegno livelli orizzontali sul timeframe H4 (metto linee orizzontali da strumenti di disegno nel terminale) e passo a qualsiasi altro timeframe, tutte le mie linee vengono rimosse. Rimangono solo i livelli orizzontali dell'indicatore. Come posso correggere questo errore nel codice? Per assicurarmi che i miei livelli orizzontali non vengano mai cancellati. Ecco il codice dell'indicatore.
Теперь вы можете не только читать статьи и скачивать программы на языке MQL5, но и участвовать в обсуждении интересующих вас тем на Форуме, оставлять комментарии к статьям и опубликованным кодам. Кроме того, вы можете не только выкладывать собственные разработки в Code Base, но и публиковать Статьи, за которые мы предлагаем вознаграждение...
Buon pomeriggio, sto scrivendo una classe per raccogliere gli estremi basati sulle letture dell'indicatore iWPR. Ecco un pezzo di codice: inizio creando un handle per un indicatore e poi copio i dati in un buffer. Creo un ciclo per ottenere i dati dell'indicatore in base alla dimensione dell'array e scrivo il corso degli eventi nel file per capire cosa sta succedendo. Vorrei sottolineare che ho copiato questo codice da MQL4 e, naturalmente, l'ho adattato per MQL5. Non capisco qualcosa o qualcosa è sbagliato, ma i dati della variabile dwpr vengono scritti in un file con qualche tipo di errore. Cosa sto facendo di sbagliato? Allego il file di testo del cosiddetto log!
hWPR=iWPR(NULL,period,240);
CopyBuffer(hWPR,0,0,ibars,WPRBuffer);
CopyLow(NULL,0,0,ibars,Low);
CopyHigh(NULL,0,0,ibars,High);
CopyTime(NULL,0,0,ibars,Time);
int y=ArraySize(WPRBuffer);
//int w=ArraySize(Low);//int x=ArraySize(High);//int z=ArraySize(Time);
ResetLastError();
if(flag){filehandle=FileOpen(Symbol()+"_VertexUpLoad_3.txt",FILE_WRITE|FILE_TXT);}
if(flag){FileWrite(filehandle,"Количество элементов в буфере WPRBuffer "+IntegerToString(y)+" Low "+IntegerToString(w)+
" High "+IntegerToString(x)+" Time "+IntegerToString(z));}
//for(int i=ibars-1;i>0;i--)for(int i=1;i</*ibars*/ y-1;i++)
{
if(i==344)
{
Print("");}
datetime d=Time[i];
//if(x<D'2004.04.02. 12:00:00'){continue;}//участок кода для тестированияif(flag){FileWrite(filehandle,"======================================================================================");}
dwpr=NormalizeDouble(WPRBuffer[i],4);
if(dwpr>=dup&&dwpr<0.0){chflag=2;}//индикатор в верхней экстремальной зонеif(dwpr<=ddn&&dwpr>-100.1){chflag=1;}//индикатор в нижней ЭЗ, а остальное все тоже самое//Самое начало пока индикатор "балтается" if(dwpr>=0.0000){if(flag){FileWrite(filehandle,"Самое начало пока индикатор балтается. Бар № "+IntegerToString(i)+
" dwpr "+DoubleToString(dwpr,4));}
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.
C'è un indicatore MT5 "Grid Builder" che disegna linee orizzontali in incrementi di prezzo. È possibile selezionare ad esempio 100p, 200p ecc. E costruisce una griglia orizzontale su e giù con un determinato passo. Ma ha un problema, per esempio, quando disegno livelli orizzontali sul timeframe H4 (ho messo linee orizzontali da strumenti di disegno nel terminale) e passo a qualsiasi altro timeframe, tutte le mie linee vengono rimosse. Rimangono solo i livelli orizzontali dell'indicatore. Come posso correggere questo errore nel codice? Per garantire che i miei livelli orizzontali non vengano mai cancellati. Ecco il codice dell'indicatore.
C'è un indicatore MT5 "Grid Builder" che disegna linee orizzontali in incrementi di prezzo. È possibile selezionare ad esempio 100p, 200p ecc. E costruisce una griglia orizzontale su e giù con un determinato passo. Ma ha un problema, per esempio, quando disegno livelli orizzontali sul timeframe H4 (metto linee orizzontali da strumenti di disegno nel terminale) e passo a qualsiasi altro timeframe, tutte le mie linee vengono rimosse. Rimangono solo i livelli orizzontali dell'indicatore. Come posso correggere questo errore nel codice? Per assicurarmi che i miei livelli orizzontali non vengano mai cancellati. Ecco il codice dell'indicatore.
Siprega di provare ainserire il codice correttamente.
Beaubra a tutti.
Quando cambio timeframe che è stato inattivo per molto tempo, l'indicatore si blocca. Per favore, guidatemi dove è sepolto il cane. Grazie!
Beaubra a tutti.
Quando cambio timeframe, che non è stato usato per molto tempo, l'indicatore si blocca. Per favore, guidatemi dove è sepolto il cane. Grazie!
Il cane sta caricando i dati.
Beaubra a tutti.
Quando cambio timeframe, che non è stato usato per molto tempo, l'indicatore si blocca. Per favore, guidatemi dove è sepolto il cane. Grazie!
Lo stesso posto in cui il lupo ha morso la volpe....
L'ha morso. Cosa ne pensate? )))))))
Come può una funzione essere chiamata prima e poi dichiarata? Il programma non gira in fila o cosa?
MQL-compilatore, non interprete, cerca su Google "linker compiler".
quanta probabilità di ricevere da una piccola stringa di testo(10-50 simboli) md5-hash (16 byte) uguale0xAAAAAAAAAAAAAAAAAAA + 0xAAAAAAAAAAAAAAAAAAAA
in generale ho bisogno di un inizializzatore HASH_NULL (ho bisogno di alcune varianti ragionevoli), trovo 0 inaffidabile per qualche motivo
UPD: cercato online md5 decrittazione https://md5.web-max.ca/
sull'hash md5: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa dice errore, anche 0 è un errore
Buon pomeriggio, sto scrivendo una classe per raccogliere gli estremi basati sulle letture dell'indicatore iWPR. Ecco un pezzo di codice: inizio creando un handle per un indicatore e poi copio i dati in un buffer. Creo un ciclo per ottenere i dati dell'indicatore in base alla dimensione dell'array e scrivo il corso degli eventi nel file per capire cosa sta succedendo. Vorrei sottolineare che ho copiato questo codice da MQL4 e, naturalmente, l'ho adattato per MQL5. Non capisco qualcosa o qualcosa è sbagliato, ma i dati della variabile dwpr vengono scritti in un file con qualche tipo di errore. Cosa sto facendo di sbagliato? Allego il file di testo del cosiddetto log!