Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Привет Младен, привет всем,
Проклятый новый Build!
С B625 у меня появились новые предупреждения.
"Возвращаемое значение 'OrderSelect' должно быть проверено"
для следующего кода:
"OrderSelect(i,SELECT_BY_POS,MODE_TRADES);".
Как это исправить?
Спасибо за все.
Tomcat98Tomcat98
Сделайте следующее :
объявите одну глобальную булевую переменную (например, так) :
bool dummyResult;
А затем просто поместите "dummyResult =" перед OrderSelect - тогда у вас получится следующее:
dummyResult = OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
Привет Mladen, привет всем,
Проклятый новый Build!
С B625 у меня появились новые предупреждения.
"Возвращаемое значение 'OrderSelect' должно быть проверено"
для следующего кода:
"OrderSelect(i,SELECT_BY_POS,MODE_TRADES);".
Как это исправить?
Спасибо за все.
Tomcat98Ну, от этого можно избавиться ценой некоторых усилий.
Но у меня есть постоянное предупреждение, которое я не могу убрать никакими способами (кроме удаления строки исходного кода):
results in
[CODE]! struct has no members, size assigned to 1 byte, что является бесполезной информацией, если я использую его как супертип только для вызовов dll (я не имею представления о другом использовании пустой структуры).
Привет, Младен,
Да, все работает:
Отличная работа.
Большое спасибо за вашу помощь.
Искренне.
Tomcat98
Привет всем,
С некоторых пор я периодически получаю следующую ошибку в одном из моих индикаторов, который я использую в своем советнике.
2014.04.10 09:01:49.533 2014.01.08 03:45 Access violation write to 0xFFFFFFFE in 'C:\Users\...\AppData\Roaming\MetaQuotes\Terminal\D5D5AE2430FC68F628F143CAFA9XXXX\MQL4\indicators\MyDailyFibo.ex4'
Я использую MT версии 4. Build 625
Пожалуйста, помогите мне найти первопричину этой проблемы. Дайте мне знать, если вам нужно заглянуть в индикатор. Проблема возникает не постоянно, но очень часто...
Спасибо и наилучшие пожелания,
Антоний
Привет всем,
С некоторых пор я периодически получаю следующую ошибку в одном из моих индикаторов, который я использую в своем советнике.
2014.04.10 09:01:49.533 2014.01.08 03:45 Access violation write to 0xFFFFFFFE in 'C:\Users\...\AppData\Roaming\MetaQuotes\Terminal\D5D5AE2430FC68F628F143CAFA9XXXX\MQL4\indicators\MyDailyFibo.ex4'
Я использую MT версии 4. Build 625
Пожалуйста, помогите мне найти первопричину этой проблемы. Дайте мне знать, если вам нужно заглянуть в индикатор. Проблема возникает не постоянно, но очень часто...
Спасибо и наилучшие пожелания,
АнтонийАнтони
Это не проблема с вашим индикатором.
Это проблема нового metatrader 4 (у него проблемы с правильным распределением памяти и доступом к ней - build 628 немного лучше, но не намного).
Здравствуйте,
Мне нужна помощь с индикатором, который я пытался написать (Wilder trailing stop candles MTF).
Первая проблема: мой индикатор рисует сигнал на покупку на 1 бар раньше, чем должен быть, и я знаю, что это связано с тем, как рассчитывается наклон, но я не знаю, как это исправить.
Вторая проблема: цвета не совпадают, возможно я что-то напутал с буферами в этой части, но я сам себя запутал и не могу это исправить :
{
UpBodyBuffer = High;
DnBodyBuffer = Low;
UpWickBuffer = MathMax(Open,Close);
DnWickBuffer = MathMin(Open,Close);
}
else
{
DnBodyBuffer = High;
UpBodyBuffer = Low;
DnWickBuffer = MathMax(Open,Close);
UpWickBuffer = MathMin(Open,Close);wilders_trailing_stop_candles_mtf.mq4
wilders_trailing_stop_mtf_1.mq4
wilders_trailing_stop.mq4
Привет,
Мне нужна помощь с индикатором, который я пытался написать (Wilder trailing stop candles MTF).
Первая проблема: мой индикатор рисует сигнал на покупку на 1 бар раньше, чем должен быть, и я знаю, что это связано с тем, как рассчитывается наклон, но я не знаю, как это исправить.
Вторая проблема: цвета не совпадают, возможно я что-то напутал с буферами в этой части, но я сам себя запутал и не могу это исправить :
{
UpBodyBuffer = High;
DnBodyBuffer = Low;
UpWickBuffer = MathMax(Open,Close);
DnWickBuffer = MathMin(Open,Close);
}
else
{
DnBodyBuffer = High;
UpBodyBuffer = Low;
DnWickBuffer = MathMax(Open,Close);
UpWickBuffer = MathMin(Open,Close);wilders_trailing_stop_candles_mtf.mq4
wilders_trailing_stop_mtf_1.mq4
wilders_trailing_stop.mq4
мммхх, цвета совпадают. Может быть, мне нужно написать сначала фитильные буфера, а потом телесные буфера?
мммххх, цвета совпадают. Может быть, мне нужно написать сначала wickbuffers, а потом bodybuffers?
thefxpros
Самый простой способ - изменить индикатор трейлинг-стопа Wilders (иначе вы попадете в сложные конструкции if then else). Вот версия с одним внутренним буфером, который вам нужен: тренд. Если он равен 1, то тренд восходящий, если равен -1, то тренд нисходящий. Используйте этот индикатор вместо оригинального и просто считайте значение буфера 4 - после этого все просто
thefxpros Самый простой способ - изменить индикатор трейлинг-стопа Wilders (иначе вы попадете в сложные конструкции if then else). Вот версия с одним внутренним буфером, который вам нужен : trend. Если он равен 1, то тренд восходящий, если равен -1, то тренд нисходящий. Используйте этот индикатор вместо оригинального и просто считывайте значение буфера 4 - дальше все просто
Вот так?
#property copyright "thefxpros"
#property link "thefxpros@katamail.com"
//------------------------------------------------------------------
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 LimeGreen
#property indicator_color2 Orange
#property indicator_color3 DarkGreen
#property indicator_color4 FireBrick
#property indicator_width1 1
#property indicator_width2 2
//
//
//
extern int TimeFrame = 0;
extern int Length = 2;
extern double Coeff = 1.75;
extern color UpBodyColor = LimeGreen;
extern color DnBodyColor = Orange;
extern color UpWickColor = DarkGreen;
extern color DnWickColor = FireBrick;
extern int WickWidth = 1;
extern int BodyWidth = 2;
//
double UpBodyBuffer[];
double DnBodyBuffer[];
double UpWickBuffer[];
double DnWickBuffer[];
double TrendBuffer[];
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(6);
SetIndexBuffer(0,UpWickBuffer); SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, WickWidth, UpWickColor);
SetIndexBuffer(1,DnWickBuffer); SetIndexStyle(1,DRAW_HISTOGRAM, EMPTY, WickWidth, DnWickColor);
SetIndexBuffer(2,UpBodyBuffer); SetIndexStyle(2,DRAW_HISTOGRAM, EMPTY, BodyWidth, UpBodyColor);
SetIndexBuffer(3,DnBodyBuffer); SetIndexStyle(3,DRAW_HISTOGRAM, EMPTY, BodyWidth, DnBodyColor);
SetIndexBuffer(4,TrendBuffer);
IndicatorShortName("Wilders trailing stop MTF candles("+Length+","+Coeff+")");
Length = MathMax(Length,1);
switch(TimeFrame)
{
case 1 : string TimeFrameStr="Period_M1"; break;
case 5 : TimeFrameStr="Period_M5"; break;
case 15 : TimeFrameStr="Period_M15"; break;
case 30 : TimeFrameStr="Period_M30"; break;
case 60 : TimeFrameStr="Period_H1"; break;
case 240 : TimeFrameStr="Period_H4"; break;
case 1440 : TimeFrameStr="Period_D1"; break;
case 10080 : TimeFrameStr="Period_W1"; break;
case 43200 : TimeFrameStr="Period_MN1"; break;
default : TimeFrameStr="Current Timeframe";
}
IndicatorShortName("Wilders trailing stop MTF candles("+TimeFrameStr+")");
return(0);
}
//----
//+------------------------------------------------------------------+
//| MTF function |
//+------------------------------------------------------------------+
int start()
{
datetime TimeArray[];
int i,limit,y=0,counted_bars=IndicatorCounted();
// Plot defined time frame on to current time frame
ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame);
limit= MathMin(Bars-counted_bars+3*TimeFrame/Period(),Bars-1);
for(i=0,y=0;i<limit;i++)
{
if (Time<TimeArray[y]) y++;
/*********************************************************************************************************
Add your main indicator loop below. You can reference an existing indicator with its iName or iCustom.
Rule 1: Add extern inputs above for all neccesary values
Rule 2: Use 'TimeFrame' for the indicator time frame
Rule 3: Use 'y' for your indicator's shift value
********************************************************************************************************/
int slope=iCustom(Symbol(),TimeFrame,"Wilders trailing stop with trend",Length,Coeff,4,y);
if (slope == 1)
{
UpWickBuffer = High;
DnWickBuffer = Low;
UpBodyBuffer = MathMax(Open,Close);
DnBodyBuffer = MathMin(Open,Close);
}
if (slope == -1)
{
DnWickBuffer = High;
UpWickBuffer = Low;
DnBodyBuffer = MathMax(Open,Close);
UpBodyBuffer = MathMin(Open,Close);
}
}
return(0);
}
//+------------------------------------------------------------------+Я не могу поверить, это работает с первой попытки ..... Есть ли что-то еще, что я могу написать лучше (удалить трендбуфер да, я видел сейчас), чем я сделал?
спасибо Младен
Вы не можете рисовать линии длиной в дюймы на графике (это совершенно невозможно с помощью metatrader и я сомневаюсь, что это возможно в любой торговой платформе). И эти линии являются объектами горизонтальных линий, а не трендовых линий (трендовые линии могут быть ограничены, а горизонтальные - нет). Если нет точного математического правила, как должны быть нарисованы линии (в зависимости от цены, а не в дюймах), они просто не могут быть нарисованы, и из этой последовательности чисел кажется, что правила уникальны для каждой линии.
Спасибо, я нашел лучший вариант, который вы можете редактировать. Это был незаконченный проект, который кодер сделал на forexfactory, и я больше не могу его найти. Пожалуйста, замените 00, 20, 50, 80 на мои цифры. Линии также группируются вместе, а не просто размещаются на специальных числах 5, 15, 31, 45 и 67.
Спасибо