#property indicator_chart_windowexternint boom = 1;
//=================================void fishka(int ma,int mi,double map,double mip) // ф-ция
{
ObjectCreate("Макс_Мин",OBJ_TRENDBYANGLE,0, Time[ma], map, Time[mi], mip);// Проводим линиюObjectSet("Макс_Мин",OBJPROP_RAY,false); // Выключить свойство бесконечного луча
}
int deinit()
{
ObjectsDeleteAll();// Удалим все объектыreturn(0);
}
void start()
{
string Символ = "GBPUSD";
datetime Первый, Последний;
int Период=PERIOD_H1;
Последний = iTime(Символ, Период, 0);// Прежде всего узнаем дату и время последнего бараif(boom){
Alert("Последний бар на часовом ",Последний);}
MqlDateTime MqlПервый; // Теперь получить начало суток, обнулив часыTimeToStruct(Последний,MqlПервый); // Для этого преобразуем время последнего бара в структуру
MqlПервый.hour=0;
Первый=StructToTime(MqlПервый); // Терерь надо обратно преобразовать во времяif(boom){
Alert("Первый бар на часовом ",Первый);} // Смотрим начало первого бара сутокint НомерПервого=iBarShift(Символ, PERIOD_H1,Первый);// По времени определим номер первого бара сутокif(boom){
Alert("Первый бар на часовом под номером ",НомерПервого);}
// Можно было просто узнать время начала бара на D1// Теперь у нас есть НомерПервого бара, а номер послелнего = 0// Найдем на этом интервале номера баров, где макс и мин// iHighest и iLowest находят номер бара с макс и мин ценойint БарМакс = iHighest(Символ, // symbol = инструмента
Период, // timeframe = ПериодMODE_HIGH, // Наибольшая цена бара
НомерПервого+1, // Количество баров0); // Начальный барint БарМин = iLowest(Символ,Период,MODE_LOW,НомерПервого+1,0); // Наименьшая цена бараif(boom){
Alert("Максимальный бар = ", БарМакс, " Минимальный бар = ", БарМин);}
double max_price=iHigh(Символ, Период, БарМакс); // iHigh и iLow дают макс и мин цены указанного бараdouble min_price=iLow (Символ, Период, БарМин);
fishka(БарМакс,БарМин,max_price,min_price); // ф-цияif(boom){
Alert("Максимум цены = ", max_price, " Минимум цены = ", min_price);
Alert("Угол = ", ObjectGetDouble(0,"Макс_Мин",OBJPROP_ANGLE));} // Теперь хорошо бы узнать угол
}
嗯......我认为我们不需要挖得那么深,但循环中的请求确实是第一个吸引你眼球的东西。
如果它一次就需要这些数据,或者一小时一次呢?为什么要做一个无用的循环?
除了提问者本人,我们都不知道他想要什么。所以我们只能建议他做什么--去心灵感应俱乐部里读他在制定问题上的失败。也不要被那些决定笑一下的人所冒犯。
拖拉机:)一个更好的建议是把价格放在一个循环中。相应地,存储在数组中。
在我看来,它更简单,就像这样
警报立即输出到屏幕上。这是表格的结尾
你读过这个问题吗?你似乎错过了它。
你应该直接回答,我的问题你不清楚。 而你 "盐、胡椒......"攻击性
请看我给你的第一个答复,这是对你的一个问题。如果你能清楚地回答,可能会是另一场对话。
你问的是什么样的信号?
而这与蜡烛的数据有什么关系呢?
如何把它放在一个循环中,以显示不只是一天,而是历史,所有的扭曲像蛇一样不工作,兴趣是技术的,我很痒))
在两台机器重叠的地方,如何才能得到一个正确和更准确的价格?
交叉点在条形图之间,而计算是基于条形图的。还是你需要更精确?你可以进行插值,但你必须这样做吗?缓慢的马有相同的价值。
条形之间的交集,并逐条进行计算。还是你需要更精确?你可以进行插值,但你应该吗?慢速马具有相同的价值。
MA交叉发生在条形图之间--抓住了一个明显的例子
交叉点左侧和右侧的柱状图上的MA值与交叉点的价格不同。我知道提问者想要的是准确的交叉点上的数值,而不是相邻条上的数值。这个精确的数值可以通过线性插值得到--毕竟,条形之间的MA被构造成直线段。或者取相邻条上的每个MA的坐标。用分析法构建2条直线并计算它们的交点。可以通过考虑2个相似的三角形来进行计算。一个相反的问题出现了--我们为什么需要它?成本与结果的价值是否相称?毕竟,如果MA的参数变化很小,交点就会移动。最有可能的是,它是由课程项目 的负责人要求的