Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1940
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ну а память как то проверить можно? Как она расходуется или еще что то?
допустим на память повлиять можно и он рассчитает 200 индикаторов, но через неделю вы спросите почему не загружается 1000 индикаторов.. итд... замкнутый цикл.. Ставьте корректные задачи..
зависший код нигде не применить.. Задачи нужно ставить выполнимые.. А запороть код можно и проще.. Индикаторы должны работать быстро там нет времени для супер долгих вычислений.
Знать бы еще эти рамки, в которых можно что то создавать. Начинающему тяжело разбираться с этим, тем более я вообще не программист. Ладно, поищу что можно почитать
Знать бы еще эти рамки, в которых можно что то создавать. Начинающему тяжело разбираться с этим, тем более я вообще не программист. Ладно, поищу что можно почитать
ну обычно хватает одного CCI, максимум 3 :) а у вас 200.. То что сложно не выходить за рамки - тут согласен.. для этого нужен опыт, поставить верную, выполнимую задачу, которая будет завершена успешно за разумное время - сложно. Поэтому если нужен совет куда копать - то однозначно в сторону оптимизации и минимизации идей..Например CCI с периодом 20 и CCI с периодом 21.. почти одно и тоже и нету смысла рассчитывать оба из них. чем выше период тем меньше эффект, нужно найти разумное количество. Красивое решение всегда работает быстро.
ну обычно хватает одного CCI, максимум 3 :) а у вас 200.. То что сложно не выходить за рамки - тут согласен.. для этого нужен опыт, поставить верную, выполнимую задачу, которая будет завершена успешно за разумное время - сложно. Поэтому если нужен совет куда копать - то однозначно в сторону оптимизации и минимизации идей..Например CCI с периодом 20 и CCI с периодом 21.. почти одно и тоже и нету смысла рассчитывать оба из них. чем выше период тем меньше эффект, нужно найти разумное количество. Красивое решение всегда работает быстро.
Я так понимаю профилировщик поможет измерить расход памяти. Ну значит будем оптимизировать). Но все равно если кто то знает где про это почитать, киньте ссылку пожалста..
здравствуйте всем!
подскажите пожалуйста что нужно добавить в код чтобы МА смещалась не только в перед (положительное значение) но и назад (отрицательное значение)
Вот код из советника:
здравствуйте всем!
подскажите пожалуйста что нужно добавить в код чтобы МА смещалась не только в перед (положительное значение) но и назад (отрицательное значение)
Вот код из советника:
Добавьте к сдвигу нужное отрицательное значение, но чтоб значение + сдвиг были не меньше нуля.
Добавьте к сдвигу нужное отрицательное значение, но чтоб значение + сдвиг были не меньше нуля.
спасибо, попробую.
Добрый день.
Помогите с кодом, может есть примеры.
Задача:
Есть несколько открытых ордеров, с разными лотами, в разных направлениях. Одни из них зарывается с профитом, предположим 20. Но есть открытый с отрицательным профитом, предположим -55 с лотами 0,05. Хочу закрыть часть отрицательного ордера на сумму профита положительно закрытого ордера, чтобы уменьшить просадку.
Пытался написать на основе оператора while, но что то пошло не так.
Заранее спасибо.
Здравствуйте, этот код из книги Федосеева. Почему индикатор не отрисовывается в окне, в журнале пишет что он запущен, при компиляции ошибок нет, дополнительное окно открывается(пустое), это код из книги, с моим точно такой-же результат. Что не так?
//+------------------------------------------------------------------+
//| 015 Symbol.mq5 |
//+------------------------------------------------------------------+
#property copyright "Dmitry Fedoseev"
#property link "mailto:for-good-letter@yandex.ru"
#property version "1.00"
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_plots 1
//--- plot bar
#property indicator_label1 "bar"
#property indicator_type1 DRAW_CANDLES
#property indicator_color1 clrGray,clrBlue,clrRed
#property indicator_style1 STYLE_SOLID
#property indicator_width1 1
//--- input parameters
input string symbol="";
input bool drawBars=false;
string sym;
//--- indicator buffers
double barBuffer1[];
double barBuffer2[];
double barBuffer3[];
double barBuffer4[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
sym=symbol;
StringTrimLeft(sym);
StringTrimRight(sym);
if(sym==""){
sym=Symbol();
}
if(!SymbolSelect(sym,true)){
Alert("Неизвестный символ ",sym);
return(INIT_FAILED);
}
if(drawBars){
PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_BARS);
}
else{
PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_CANDLES);
}
//--- indicator buffers mapping
SetIndexBuffer(0,barBuffer1,INDICATOR_DATA);
SetIndexBuffer(1,barBuffer2,INDICATOR_DATA);
SetIndexBuffer(2,barBuffer3,INDICATOR_DATA);
SetIndexBuffer(3,barBuffer4,INDICATOR_DATA);
//---
return(INIT_SUCCEEDED);
}
void OnDeinit(const int r){
Comment("");
EventKillTimer();
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
int bars=Bars(sym,Period());
if(bars==0){
Comment("Формирование таймфрейма ",sym,"...");
EventSetTimer(1);
return(0);
}
int start;
if(prev_calculated==0){
Comment("");
EventKillTimer();
datetime tm[1];
if(CopyTime(sym,Period(),bars-1,1,tm)==-1){
return(0);
}
start=0;
for(;start<rates_total;start++){
if(time[start]>=tm[0]){
break;
}
}
}
else{
start=prev_calculated-1;
}
MqlRates r[1];
for(int i=start;i<rates_total;i++){
if(CopyRates(sym,Period(),time[i],1,r)==-1){
return(0);
}
barBuffer1[i]=r[0].open;
barBuffer2[i]=r[0].high;
barBuffer3[i]=r[0].low;
barBuffer4[i]=r[0].close;
}
return(rates_total);
}
void OnTimer()
{
ChartSetSymbolPeriod(0,Symbol(),Period());
}
//+------------------------------------------------------------------+
Здравствуйте, этот код из книги Федосеева. Почему индикатор не отрисовывается в окне, в журнале пишет что он запущен, при компиляции ошибок нет, дополнительное окно открывается(пустое), это код из книги, с моим точно такой-же результат. Что не так?
Альт эс вставить код.
И при накидывании индюка Вы инструмент вводите?