ObjectGetValueByShift( | string name, int shift) |
OBJPROP_PRICE1 не является "сдвигом"... Shift - это номер бара, на котором вы хотите взять значение - применимо к трендовой линии и подобным объектам
double tp = ObjectGetValueByShift( TP_P, 0); // предполагая, что TP_P - это строковая переменная, содержащая имя объекта, и вы хотите получить значение линии на текущем баре
ObjectGetValueByShift( | string name, int shift) |
OBJPROP_PRICE1 не является "сдвигом"... Shift - это номер бара, на котором вы хотите взять значение - применимо к трендовой линии и подобным объектам
double tp = ObjectGetValueByShift( TP_P, 0); // предполагая, что TP_P - это строковая переменная, содержащая имя объекта, и вы хотите получить значение линии на текущем баре
Я попробовал то, что вы объяснили. Не похоже, что это работает. Любая другая информация была бы очень кстати.
gavin:
I have tried what you have explianed. It doesnt seen to work. Any other info would be great.
Получает ли то, что вы объяснили, расхождение как с линией тренда, так и с h_линией, в зависимости от того, что я загрузил на график в данный момент?
Опубликуйте свой код, мы понятия не имеем, что вы сделали.
Вот что у меня было.
--------------------------------------------------------
строка TP_P;
if (OrderType()==OP_BUY) TP_P = BTP;
if (OrderType()==OP_SELL) TP_P = STP;
double tp;
tp =(ObjectGetValueByShift( TP_P, OBJPROP_PRICE1)) || (ObjectGet( TP_P, OBJPROP_PRICE1));
-----------------------------------------------------------------------------------------------------------------
Затем я вставил это вместо того, что вы сказали, да?
----------------------------------------------------------
tp = ObjectGetValueByShift( TP_P,0);
есть помощники???
if (ObjectType(TP_P) == OBJ_TREND) tp = ObjectGetValueByShift(TP_P, shift); else tp = ObjectGEt(TP_P, OBJPROP_PRICE1)
Теперь все просто. Большое спасибо за помощь. Все получилось, как я и хотел. Будь здоров!
Здравствуйте,
У меня есть следующий код для получения цены от линии тренда. Он не работает. Помогите, пожалуйста.
int obj_total = ObjectsTotal();
строковое имя;
for(int j = 0; j<obj_total; j++)
{
name = ObjectName(j);
Print(j, "Объект - ", name);
}
if(ObjectType(name) == OBJ_TREND && name == "Trendline1-m30")
{
price1 = ObjectGetValueByShift(name, 0);
}
if(ObjectType(name) == OBJ_TREND && name == "Trendline2-m30")
{
price2 = ObjectGetValueByShift(name, 0);
}
Здравствуйте, пожалуйста, используйте кнопку SRC при размещении кода.
Весь код, выделенный желтым цветом, находится ВНЕ цикла 'for'.
Поэтому значение 'name' всегда является именем конечного объекта.
int obj_total = ObjectsTotal(); string name; for(int j = 0; j<obj_total; j++) { name = ObjectName(j); Print(j, "Object - ", name); } if(ObjectType(name) == OBJ_TREND && name == "Trendline1-m30") { price1 = ObjectGetValueByShift(name, 0); } if(ObjectType(name) == OBJ_TREND && name == "Trendline2-m30") { price2 = ObjectGetValueByShift(name, 0); }
Возможно, попробуйте следующее (при условии, что price1 и price2 уже объявлены где-то еще):
int obj_total = ObjectsTotal(); string name; for(int j = 0; j<obj_total; j++) { name = ObjectName(j); Print(j, "Object - ", name); if(ObjectType(name) == OBJ_TREND && name == "Trendline1-m30") { price1 = ObjectGetValueByShift(name, 0); } if(ObjectType(name) == OBJ_TREND && name == "Trendline2-m30") { price2 = ObjectGetValueByShift(name, 0); } }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте, может ли кто-нибудь помочь с этим. У меня есть ea, которая получает значение цены от горизонтальной линии или линии тренда. Однако у меня есть следующий код, но он не получает ни одно из значений. Если я уберу Objectgetvaluebyshift, то он будет получать цену горизонтальной линии и наоборот. Но мне нужно, чтобы он распознавал обе линии и получал значение от той линии, которая у меня есть на графике (либо trand, либо h_line). Может кто-нибудь выложит немного кода, чтобы я мог понять, что делать.
спасибо.
tp =(ObjectGetValueByShift( TP_P, OBJPROP_PRICE1)) || (ObjectGet( TP_P, OBJPROP_PRICE1));