![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
но я видел, что многие люди размещали здесь коды, которые, я уверен, не все из них были написаны ими.
На самом деле, код, который я прикрепил выше, также доступен в вашей теме https://www.mql5.com/en/forum/180648/page623, комментарий # 9337.
Не могли бы вы мне помочь? Спасибо.
И вы не видите это сообщение тоже: https: //www.mql5.com/en/forum/180648/page623? Пожалуйста, будьте серьезнее...
Я не говорю, что код, размещенный другими пользователями, написан ими (на самом деле, большинство из них таковыми не являются).
Я говорю, что я (в смысле я, "mladen") не собираюсь трогать украденный (декомпилированный) код - и вы увидите много, много постов (как тот, который вы "не видели"), где я это говорил. Так что, если вы не сможете выложить оригинальный код, я не собираюсь ничего делать с таким кодом. Нравится вам это или нет, но это то, что есть... всего наилучшего
как, например, pr_haclose? Самые простые решения
iCustomMa(avgType,iMA(NULL,0,1,0,MODE_SMA,pr_haclose,i),avgPeriod,i,0);
Уважаемый Mladen, как использовать функции iMA или iCustomMa с расширенной ценой,
как, например, pr_haclose? Самые простые решения
iCustomMa(avgType,iMA(NULL,0,1,0,MODE_SMA,pr_haclose,i),avgPeriod,i,0);
{
pr_close, // Close
pr_open, // Open
pr_high, // High
pr_low, // Low
pr_median, // Median
pr_typical, // Typical
pr_weighted, // Weighted
pr_average, // Average (high+low+open+close)/4
pr_medianb, // Average median body (open+close)/2
pr_tbiased, // Trend biased price
pr_tbiased2, // Trend biased (extreme) price
pr_haclose, // Heiken ashi close
pr_haopen , // Heiken ashi open
pr_hahigh, // Heiken ashi high
pr_halow, // Heiken ashi low
pr_hamedian, // Heiken ashi median
pr_hatypical, // Heiken ashi typical
pr_haweighted, // Heiken ashi weighted
pr_haaverage, // Heiken ashi average
pr_hamedianb, // Heiken ashi median body
pr_hatbiased, // Heiken ashi trend biased price
pr_hatbiased2 // Heiken ashi trend biased (extreme) price
};
//------------------------------------------------------------------
//
//------------------------------------------------------------------
//
//
//
//
//
//
#define priceInstances 1
double workHa[][priceInstances*4];
double getPrice(int tprice, const double& open[], const double& close[], const double& high[], const double& low[], int i, int instanceNo=0)
{
if (tprice>=pr_haclose)
{
if (ArrayRange(workHa,0)!= Bars) ArrayResize(workHa,Bars); instanceNo*=4;
int r = Bars-i-1;
//
//
//
//
//
double haOpen;
if (r>0)
haOpen = (workHa[r-1][instanceNo+2] + workHa[r-1][instanceNo+3])/2.0;
else haOpen = (open[i]+close[i])/2;
double haClose = (open[i] + high[i] + low[i] + close[i]) / 4.0;
double haHigh = MathMax(high[i], MathMax(haOpen,haClose));
double haLow = MathMin(low[i] , MathMin(haOpen,haClose));
if(haOpen <haClose) { workHa[r][instanceNo+0] = haLow; workHa[r][instanceNo+1] = haHigh; }
else { workHa[r][instanceNo+0] = haHigh; workHa[r][instanceNo+1] = haLow; }
workHa[r][instanceNo+2] = haOpen;
workHa[r][instanceNo+3] = haClose;
//
//
//
//
//
switch (tprice)
{
case pr_haclose: return(haClose);
case pr_haopen: return(haOpen);
case pr_hahigh: return(haHigh);
case pr_halow: return(haLow);
case pr_hamedian: return((haHigh+haLow)/2.0);
case pr_hamedianb: return((haOpen+haClose)/2.0);
case pr_hatypical: return((haHigh+haLow+haClose)/3.0);
case pr_haweighted: return((haHigh+haLow+haClose+haClose)/4.0);
case pr_haaverage: return((haHigh+haLow+haClose+haOpen)/4.0);
case pr_hatbiased:
if (haClose>haOpen)
return((haHigh+haClose)/2.0);
else return((haLow+haClose)/2.0);
case pr_hatbiased2:
if (haClose>haOpen) return(haHigh);
if (haClose<haOpen) return(haLow);
return(haClose);
}
}
//
//
//
//
//
switch (tprice)
{
case pr_close: return(close[i]);
case pr_open: return(open[i]);
case pr_high: return(high[i]);
case pr_low: return(low[i]);
case pr_median: return((high[i]+low[i])/2.0);
case pr_medianb: return((open[i]+close[i])/2.0);
case pr_typical: return((high[i]+low[i]+close[i])/3.0);
case pr_weighted: return((high[i]+low[i]+close[i]+close[i])/4.0);
case pr_average: return((high[i]+low[i]+close[i]+open[i])/4.0);
case pr_tbiased:
if (close[i]>open[i])
return((high[i]+close[i])/2.0);
else return((low[i]+close[i])/2.0);
case pr_tbiased2:
if (close[i]>open[i]) return(high[i]);
if (close[i]<open[i]) return(low[i]);
return(close[i]);
}
return(0);
}
Привет, Младен,
Не могли бы вы добавить буферы для каждого цвета?
Спасибо!
Вам необходимо использовать пользовательскую функцию get price (вместо использования функции iMA() для получения цены). В некоторых последних версиях вы можете получить функцию getPrice()
Значит, эта формула
Вот так :
Например
Эти четыре величины относятся к
pr_close, // Close
pr_open, // Open
pr_high, // High
pr_low, // Low
Эти четыре величины относятся к
pr_close, // Close
pr_open, // Open
pr_high, // High
pr_low, // Low
Хорошо, спасибо большое за помощь! :)
(что мы будем делать после 31 января?) :(
Не могли бы вы, пожалуйста, закодировать этот индикатор для mt4 .... в Amibroker AFL кодирование ... Большое спасибо
_SECTION_BEGIN("Market Trend");
SetChartOptions(0,chartShowArrows|chartShowDates);
function predictCycle( arg1, arg2 )
{
local var1, var2;
result = arg1 + arg2;
return result;
}
Predict = 0;
P = ParamField("Поле цены",-1);
Periods = Param("Periods", 15, 2, 300, 1, 10 );
Predict = PredictCycle(C,Periods);
Buy = Predict>Ref(Predict,-1);
Sell = Predict<Ref(Predict,-1);
Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);
Plot(Predict, "Predict",colorWhite,styleLine | styleThick);
PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorGreen, 0,L, Offset=-5);
PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorRed, 0,H, Offset=-5);
_SECTION_END();