Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 80
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В тестере на другом символе? Или на демо/реал на другом символе? Или в тестере на этом символе? Или на демо/реал на этом символе?
Что из вас вытягивать-то всё приходится?
Сорян, я очень нуб - слабо понимаю как это
Может у тебя есть индикатор с кодом самый простецкий какой-нибудь, я уже по аналогии пойму? Потому что я не нашел
Вот у меня очень простой код, который ставит точечки на середину бара. Как сделать, чтобы когда я на них наводил появлялся текст ну или окошко, все равно как
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Black
//---- input parameters
//---- buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,159);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexEmptyValue(0,0.0);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
int limit=Bars-counted_bars;
//----
for(int i=limit; i>=0; i--)
{
double fabody0 = fabs(Close[i]-Open[i]);
double fabody1 = fabs(Close[i+1]-Open[i+1]);
double fabody2 = fabs(Close[i+2]-Open[i+2]);
double fabody3 = fabs(Close[i+3]-Open[i+3]);
double fabody4 = fabs(Close[i+4]-Open[i+4]);
double fabody5 = fabs(Close[i+5]-Open[i+5]);
double fabody6 = fabs(Close[i+6]-Open[i+6]);
double fabody7 = fabs(Close[i+7]-Open[i+7]);
if((fabody0>fabody1) && (fabody0>fabody2) && (fabody0>fabody3) && (fabody0>fabody4) && (fabody0>fabody5) && (fabody0>fabody6) &&(Volume[i]>Volume[i+1]))
{
if (((Close[i]>Open[i])&&(Low[i]+(High[i]-Low[i])/2>Low[i+1]+(High[i+1]-Low[i+1])*0.9))||((Close[i]<Open[i])&&(Low[i]+(High[i]-Low[i])/2<Low[i+1]+(High[i+1]-Low[i+1])*0.1)))
ExtMapBuffer1[i]=(iHigh(Symbol(),0,i)+iLow(Symbol(),0,i))/2;
}
}
//----
return(0);
}
К чему это вы? Какая разница где пробовал? Вопрос в том может ли Point = 0. И если может как правильно написать код, чтобы не наткнутся на ошибку: деление на ноль?
Ну как хотите.
Я не читал весь диалог, но что-то подозреваю проблему печати пятого знака после запятой.
Да нет, он делит на Point() и получает деление на ноль.
Я не читал весь диалог, но что-то подозреваю проблему печати пятого знака после запятой.
А проблема может быть в этом?
Пробуй
Здравствуйте.
Прошу помощи.
Сейчас лот каждого следующего ордера увеличивается так 1, 2, 3, 4, 5…
Хочу, чтобы увеличивался лот не каждого ордера, а с шагом 3, так 1, 1, 1, 2, 2, 2, 3, 3, 3…
extern double Plus_LotStop = 0.01;
extern double Plus_N_ORD = 3; //каждые N ордеров
void OnTick()
{
//---
for (int i=1; i<=OrdersStop; i++)
{
if((Close[1]<Open[1]&&Close[2]>Open[2]&&NumberOfPositions(Symbol(), -1,_Magic)<1))
{
OPENORDER (OP_BUYSTOP,PriceBS,LOTs,_Magic,i);
numB++;
PriceBS = NormalizeDouble(PriceBS+Step_Stop*Point,Digits);
OPENORDER (OP_SELLSTOP,PriceSS,LOTs,_Magic,i);
numS++;
PriceSS = NormalizeDouble(PriceSS-Step_Stop*Point,Digits);
}
LOTs=LOTs+Plus_LotStop;
}
}