А какого мувинга? Стандартной машки?Подскажите пожалуйста как можно сделать отображение значений мувинга младшего таймфрейма, нужно чтобы при закрытии дневной свечи выводились значения мувинга М5.
А какого мувинга? Стандартной машки?
А какого мувинга? Стандартной машки?
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Black
#property indicator_color2 CLR_NONE
#property indicator_color3 DodgerBlue
extern string Timeframe="D1";
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE,STYLE_DOT);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexStyle(2,DRAW_LINE, STYLE_DASH, 1);
SetIndexBuffer(2,ExtMapBuffer3);
SetIndexLabel(0,"Previous Day Pivot");
SetIndexLabel(1,"Floating current pivot");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
int TodaysBarShift(int shift) {
// return the bar shift for today.
// i.e. not today.
datetime timenow= iTime(NULL,Period(),shift); // shift of current bar on lower TF chart.
int idaybarshift = iBarShift(NULL,PERIOD_D1,timenow,false);
datetime timedaybegin = iTime(NULL,PERIOD_D1,idaybarshift);
if ((timedaybegin) > timenow) idaybarshift++;
return(idaybarshift);
}
int PreviousNonSundayBarShift(int shift) {
int tbs = TodaysBarShift(shift);
int ybs = tbs+1;
datetime yesterdaybegin = iTime(NULL,PERIOD_D1,ybs);
if (TimeDayOfWeek(yesterdaybegin) == 0) ybs++; // we found a Sunday bar so screw it.
return(ybs);
}
void TodaysHighestLowest(double& H, double& L, int shift) {
// return the higest and lowest so far today.
datetime now = iTime(NULL,Period(),shift); // time value of bar.
int tbs = TodaysBarShift(shift);
datetime daybegin = iTime(NULL,PERIOD_D1,tbs);
H = High[shift];
L = Low[shift];
int j = shift+1;
while ( iTime(NULL,Period(),j) >= daybegin) {
double Ht = High[j];
double Lt = Low[j];
H = MathMax(H,Ht);
L = MathMin(L,Lt);
j++;
if ((j-shift) > 24) {
Print ("Shit!");
break;
}
}
return;
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//----
int limit = Bars-counted_bars;
for (int i=limit; i >= 0; i--) {
// Get the prev days pivot. Today's pivot.
int ybs = PreviousNonSundayBarShift(i);
int tdbar = TodaysBarShift(i);
// Prev day's pivot:
double p = iOpen(NULL,PERIOD_D1,tdbar+1);
double s = iOpen(NULL,PERIOD_D1,tdbar);
double TH,TL;
TodaysHighestLowest(TH,TL,i);
double flp = (TH+TL+Close[i])*0.33333;
ExtMapBuffer1[i] = p;
ExtMapBuffer2[i] = flp;
ExtMapBuffer3[i] = s;
//
}
//----
return(0);
}
//+------------------------------------------------------------------+
Ссылка не открывается.Интересная задачка специалистам на выходные)
Такого индикатора ещё не делали для MT4.А картинку он даёт интересную)
Алгоритм в нём предельно простой - используется прайс экшен(где и какая свеча закрылась) и зоны OB/OS от стандартного стохастика.
Для тех кому он понравится на скрине,код индикатора (не MQL4) представлен в статье:
https://www.prorealcode.com/prorealt...int-indicator/
Всем успехов!
Еще раз попытаюсь.Ссылка не открывается.
Помгите исправить ошибку - ошибка в коде ')' - unexpected end of programДанная тема создана для любых вопросов относительно языка программирования MQL4. Спрашиваем, отвечаем, помогаем и живем дружно.
Всем успехов.
Аналогичная тема, но для MQL5 http://forexsystemsru.com/yazyk-programmirovaniya-mql-5/65448-voprosy-po-mql5.html#post339519
Надо код видеть - нечетное количество скобок - либо одна лишняя (открывающая), либо одной не хватает (закрывающей).Помгите исправить ошибку - ошибка в коде ')' - unexpected end of program
- как исправить? Есть ещё одна ошибка: ')' - unexpected end of program - подскажите как исправить.
А чем ваш индикатор отличается от других? Можно, только кто будет этим заниматься? Может кто и поможет,если код не сложный и индикатор уже есть в исходнике, а так за деньги - знатоки тут найдутся(я на заказ не пишу).xsyr сказал(а):Можно ли создать индикатор/алерт/и т.д., который бы сигналил о появлении дивергенции в индикаторе...где я бы смог вписать свой индикатор?
Господа,прошу подсказки.
Что не так???
Пытался исправить предупреждения OrderModify(), но что-то не то
Спасибо.второй раз bool для res.
обьявите res вверху где int, dooble вот так:bool res;
а где модифицируете ордер, уберите bool
вроде исправил,если верночто нужно сделать,как исправить?
double isCloseLastPosByStopTrade(string sy,int op,int mn)
{
datetime t;
double ocp,osl;
int dg,i,j=-1,k=OrdersHistoryTotal();
if(sy=="0") sy=Symbol();
for(i=0; i<k; i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderSymbol()==sy) // || sy=="")
{
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
{
if(op<0 || OrderType()==op)
{
if(mn<0 || OrderMagicNumber()==mn)
{
if(t<OrderCloseTime())
{
t=OrderCloseTime();
j=i;
}
}
}
}
}
}
}
if(OrderSelect(j,SELECT_BY_POS,MODE_HISTORY))
{
return(OrderProfit());
}
}
Исправьте пожалуйста, выдает ошибки
Код:double isCloseLastPosByStopTrade(string sy,int op,int mn) { datetime t; double ocp,osl; int dg,i,j=-1,k=OrdersHistoryTotal(); if(sy=="0") sy=Symbol(); for(i=0; i<k; i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) { if(OrderSymbol()==sy) // || sy=="") { if(OrderType()==OP_BUY || OrderType()==OP_SELL) { if(op<0 || OrderType()==op) { if(mn<0 || OrderMagicNumber()==mn) { if(t<OrderCloseTime()) { t=OrderCloseTime(); j=i; } } } } } } } if(OrderSelect(j,SELECT_BY_POS,MODE_HISTORY)) { return(OrderProfit()); } }
double isCloseLastPosByStopTrade(string sy,int op,int mn)
{
datetime t=0;
double profit;
int i,k=OrdersHistoryTotal();
if(sy=="0") sy=Symbol();
for(i=0; i<k; i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderSymbol()==sy) // || sy=="")
{
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
{
if(op<0 || OrderType()==op)
{
if(mn<0 || OrderMagicNumber()==mn)
{
if(t<OrderCloseTime())
{
t=OrderCloseTime();
profit=OrderProfit();
}
}
}
}
}
}
}
return(profit);
}