안녕하세요, 문제를 해결하는 방법을 알려주세요. 차트에 많은 수준(선)을 구축하는 지표(하드웨어에 연결됨)를 기반으로 하는 Expert Advisor를 작성하고 싶습니다. 줄 수는 500개에 도달할 수 있습니다.
내가 구현하고 싶은 것은 가격이 차트의 선을 넘을 때 주문 또는 기타 이벤트(예: 경고 또는 메시지)를 여는 것입니다. 그러나 문제는 표시기가 값을 반환하지 않고 수평선 (이름이 있는 개체)만 그립니다. 차트에는 다른 것이 없습니다.
"_price"변수를 통해 가격 수준을 검색하는 iCustom 기능을 통해 솔루션을 찾으려고했지만 라인을 터치하면 EA가 거래를 열지 않습니다. 내가 뭘 잘못했는지 이해가 안 돼요.
voidOnTick ()
{
ENUM_OBJECT typeObj = OBJ_HLINE ;
string ArrLines[];
double
Price;
Price=Bid;
//ВАРИАНТ 1 (не получился). Я хотел, чтобы ордер открывался при пересечении любой из линий на графике //вызовем индикатор: (пара, таймфрейм, индикатор...)iCustom ( Symbol (), 0 , "ITS-Level Gun" , 0 , 0 );
int i, k = ObjectsTotal ();
ArrayResize (ArrLines, 0 );
//в цикле перебираем все объекты на графикеfor (i=k- 1 ; i>= 0 ; i--) {
//узнаем имя объекта на графикеstring _name = ObjectName (i);
{
//узнаем координату цены линииdouble _price = NormalizeDouble ( ObjectGetDouble ( 0 , _name, OBJPROP_PRICE ), Digits );
}
}
if (Price==_price)
{ OrderSend ( Symbol (),OP_BUY, 0.1 ,Ask, 3 ,Bid- 15 * Point ,Bid+ 15 * Point );}
// И ВСЁ, дальше не знаю, что делать
}
}
옵션 2. 내가 설정에서 지정한 라인에서 주문이 열립니다. - 어드바이저 매개변수에서 지정한 수준에서 작동하고 거래를 엽니다.
externstring h= "@Line_week_open-0" ; //ИЗМЕНЕНИЕ ННАЗВАНИЯ ЛИНИИ В СВОЙСТВАХ СОВЕТНИКА.ВАРИАНТ 2.if ( ObjectFind (h)>- 1 )
{
double prise = ObjectGet(h, OBJPROP_PRICE1);
if (Price==prise)
{ OrderSend ( Symbol (),OP_BUY, 0.1 ,Ask, 3 ,Bid- 15 * Point ,Bid+ 15 * Point );}
}
안녕하세요, 문제를 해결하는 방법을 알려주세요. 차트에 많은 수준(선)을 구축하는 지표(하드웨어에 연결됨)를 기반으로 하는 Expert Advisor를 작성하고 싶습니다. 줄 수는 500개에 도달할 수 있습니다.
내가 구현하고 싶은 것은 가격이 차트의 선을 넘을 때 주문 또는 기타 이벤트(예: 경고 또는 메시지)를 여는 것입니다. 그러나 문제는 표시기가 값을 반환하지 않고 수평선 (이름이 있는 개체)만 그립니다. 차트에는 다른 것이 없습니다.
"_price"변수를 통해 가격 수준을 검색하는 iCustom 기능을 통해 솔루션을 찾으려고했지만 라인을 터치하면 EA가 거래를 열지 않습니다. 내가 뭘 잘못했는지 이해가 안 돼요.
옵션 2. 내가 설정에서 지정한 라인에서 주문이 열립니다. - 어드바이저 매개변수에서 지정한 수준에서 작동하고 거래를 엽니다.
for ( int i = ObjectsTotal () - 1 ; i >= 0 ; i--) {
// все что не горизонтальные линии - игнорируемif (ObjectType( ObjectName (i)) != OBJ_HLINE ) continue ;
double PriceLine = NormalizeDouble (ObjectGet( ObjectName (i), OBJPROP_PRICE1), Digits ());
// измените условие Bid == PriceLine
if (Bid == PriceLine) {
// ..... тут что-то происходит ...
}
}
그러나 어떤 이유로 Bid가 라인을 뛰어 넘고 라인 의 가격과 같지 않다면 어떻게 될까요? - 뭔가 조치 ... 그러나이 경우 "허용되는"교차점 을 제공하는 것을 잊지 마십시오. 시장이 큰 갭으로 열리거나 큰 가격 상승이 발생하면 순식간에 많은 라인에서 열리며 원하는 곳에서 열리지 않을 수 있습니다. 교차점이 허용되는 값보다 크도록 하십시오. 메시지만 표시됩니다. ..
그러나 어떤 이유로 Bid가 라인을 뛰어 넘고 라인 의 가격과 같지 않다면 어떻게 될까요? - 뭔가 조치 ... 그러나이 경우 "허용되는"교차점 을 제공하는 것을 잊지 마십시오. 시장이 큰 갭으로 열리거나 큰 가격 상승이 발생하면 순식간에 많은 라인에서 열리며 원하는 곳에서 열리지 않을 수 있습니다. 교차점이 허용되는 값보다 크도록 하십시오. 메시지만 표시됩니다. ..
Igor, 예, 상수 값에 대해 오랫동안 명확했습니다. 이것이 우리가 말하는 것, 반환 값으로 15비트와 16비트의 의미입니다. 브래드와 모두. 어떤 이유로 M30 이전 에는 ENUM 상수 가 TIMEFRAMEVALUES !!!! 그리고 그것은 이미 일부 비트의 값에 해당합니다 . 글쎄, 논리 녀석은 도대체 어디에? 따라서 이것은 큰 실수이며 의도적으로 이런 식으로 수행되면 사보타주)) _Period 변수에는 이미 이러한 모든 기간 값 이 포함되어 있으므로 ENUM 열거형에서 더 이상 변환할 필요가 없습니다. 따라서 이러한 상수 값은 도움말에 명시된 기간 값 과 일치해야 합니다. 비탐이 아닙니다!
H1 아래의 분 타임프레임은 올바른 값을 반환하기 때문입니다.
도움말에 설명된 대로 그들은 지속적인 헛소리가 아닌 timeframe 의 값을 반환합니다.
무슨 헛소리?
눈을 닦으십시오. 그러나 ENUM_TIMEFRAMES의 내부 표현을 보여주었습니다.
16번 비트 설정은 주간 및 월간 기간을 정의합니다.
세트 비트 번호 15는 시간 단위를 정의하고 D1 = 100000000011000 --> 11000 --> 24 시간 프레임을 정의합니다. 즉, 개발자는 D1을 24시간으로 비교했으며 나머지 시간 프레임은 십진법으로의 변환에 해당합니다.
분 시간 프레임의 경우 시간 단위와 유사하지만 상위 비트는 재설정됩니다.
또 다른 질문은 ENUM_TIMEFRAMES를 반환하는 함수가 TF 시간을 분 단위로 반환하도록 결정했다는 것입니다. 그렇지 않습니다. 이 함수 는 ENUM_TIMEFRAMES 열거형을 반환합니다. 더도 말고 덜도 말고 ENUM_TIMEFRAMES만
https://www.mql5.com/ru/docs/basis/types/integer/enumeration 도움말의 예를 참조하십시오.
열거형은 열거형의 멤버에 상수 값을 할당할 수도 있습니다.
요구 사항에 따라 자신의 목록을 만들 수 있습니다.
https://www.mql5.com/ru/articles/18
https://www.mql5.com/ru/articles/5798
매우 감사합니다! 도움이 된 것은 wchar_ 입니다! 나는 그것에 대해 읽었습니다. char와 달리 문자당 2바이트를 저장합니다.
사실, 함수 매개 변수 "str"은 여전히 할당 된 값을 반환하지 않습니다. 왜 그런지 궁금합니다. ..
안녕하세요, 문제를 해결하는 방법을 알려주세요. 차트에 많은 수준(선)을 구축하는 지표(하드웨어에 연결됨)를 기반으로 하는 Expert Advisor를 작성하고 싶습니다. 줄 수는 500개에 도달할 수 있습니다.
내가 구현하고 싶은 것은 가격이 차트의 선을 넘을 때 주문 또는 기타 이벤트(예: 경고 또는 메시지)를 여는 것입니다. 그러나 문제는 표시기가 값을 반환하지 않고 수평선 (이름이 있는 개체)만 그립니다. 차트에는 다른 것이 없습니다.
"_price"변수를 통해 가격 수준을 검색하는 iCustom 기능을 통해 솔루션을 찾으려고했지만 라인을 터치하면 EA가 거래를 열지 않습니다. 내가 뭘 잘못했는지 이해가 안 돼요.
옵션 2. 내가 설정에서 지정한 라인에서 주문이 열립니다. - 어드바이저 매개변수에서 지정한 수준에서 작동하고 거래를 엽니다.
안녕하세요, 문제를 해결하는 방법을 알려주세요. 차트에 많은 수준(선)을 구축하는 지표(하드웨어에 연결됨)를 기반으로 하는 Expert Advisor를 작성하고 싶습니다. 줄 수는 500개에 도달할 수 있습니다.
내가 구현하고 싶은 것은 가격이 차트의 선을 넘을 때 주문 또는 기타 이벤트(예: 경고 또는 메시지)를 여는 것입니다. 그러나 문제는 표시기가 값을 반환하지 않고 수평선 (이름이 있는 개체)만 그립니다. 차트에는 다른 것이 없습니다.
"_price"변수를 통해 가격 수준을 검색하는 iCustom 기능을 통해 솔루션을 찾으려고했지만 라인을 터치하면 EA가 거래를 열지 않습니다. 내가 뭘 잘못했는지 이해가 안 돼요.
옵션 2. 내가 설정에서 지정한 라인에서 주문이 열립니다. - 어드바이저 매개변수에서 지정한 수준에서 작동하고 거래를 엽니다.
그러나 어떤 이유로 Bid가 라인을 뛰어 넘고 라인 의 가격과 같지 않다면 어떻게 될까요? - 뭔가 조치 ... 그러나이 경우 "허용되는"교차점 을 제공하는 것을 잊지 마십시오. 시장이 큰 갭으로 열리거나 큰 가격 상승이 발생하면 순식간에 많은 라인에서 열리며 원하는 곳에서 열리지 않을 수 있습니다. 교차점이 허용되는 값보다 크도록 하십시오. 메시지만 표시됩니다. ..
그러나 어떤 이유로 Bid가 라인을 뛰어 넘고 라인 의 가격과 같지 않다면 어떻게 될까요? - 뭔가 조치 ... 그러나이 경우 "허용되는"교차점 을 제공하는 것을 잊지 마십시오. 시장이 큰 갭으로 열리거나 큰 가격 상승이 발생하면 순식간에 많은 라인에서 열리며 원하는 곳에서 열리지 않을 수 있습니다. 교차점이 허용되는 값보다 크도록 하십시오. 메시지만 표시됩니다. ..
문제 코드.
무슨 헛소리?
눈을 닦으십시오. 그러나 ENUM_TIMEFRAMES의 내부 표현을 보여주었습니다.
16번 비트 설정은 주간 및 월간 기간을 정의합니다.
세트 비트 번호 15는 시간 단위를 정의하고 D1 = 100000000011000 --> 11000 --> 24 시간 프레임을 정의합니다. 즉, 개발자는 D1을 24시간으로 비교했으며 나머지 시간 프레임은 십진법으로의 변환에 해당합니다.
분 시간 프레임의 경우 시간 단위와 유사하지만 상위 비트는 재설정됩니다.
또 다른 질문은 ENUM_TIMEFRAMES를 반환하는 함수가 TF 시간을 분 단위로 반환하도록 결정했다는 것입니다. 그렇지 않습니다. 이 함수 는 ENUM_TIMEFRAMES 열거형을 반환합니다. 더도 말고 덜도 말고 ENUM_TIMEFRAMES만
https://www.mql5.com/ru/docs/basis/types/integer/enumeration 도움말의 예를 참조하십시오.
열거형은 열거형의 멤버에 상수 값을 할당할 수도 있습니다.
요구 사항에 따라 자신의 목록을 만들 수 있습니다.
Igor, 예, 상수 값에 대해 오랫동안 명확했습니다.
이것이 우리가 말하는 것, 반환 값으로 15비트와 16비트의 의미입니다. 브래드와 모두.
어떤 이유로 M30 이전 에는 ENUM 상수 가 TIMEFRAME VALUES !!!!
그리고 그것은 이미 일부 비트의 값에 해당합니다 . 글쎄, 논리 녀석은 도대체 어디에?
따라서 이것은 큰 실수이며 의도적으로 이런 식으로 수행되면 사보타주))
_Period 변수에는 이미 이러한 모든 기간 값 이 포함되어 있으므로 ENUM 열거형에서 더 이상 변환할 필요가 없습니다.
따라서 이러한 상수 값은 도움말에 명시된 기간 값 과 일치해야 합니다. 비탐이 아닙니다!
자가격리 시간입니다. 검색은 이것에 대해 말한 모든 것을 수집하고 건강을 위해 읽으십시오. 왜 다른 사람들이 다시 작성된 모든 것을 반복해야 한다고 결정했습니까?
자가격리 시간입니다. 검색은 이것에 대해 말한 모든 것을 수집하고 건강을 위해 읽으십시오. 왜 다른 사람들이 다시 작성된 모든 것을 반복해야 한다고 결정했습니까?
왜 나쁜 결정을 참는가? 개발자가 생각한 것이 아니라 상수 값에 대한 논리적인 설명을 전달했습니다.
왜 나쁜 결정을 참는가? 개발자가 생각한 것이 아니라 상수 값에 대한 논리적인 설명을 전달했습니다.
분명히 당신에게는 당신의 의견과 잘못된 의견의 두 가지 의견 만 있습니다. 이것에 대해 이미 쓰여진 모든 것을 수집하고 아마도 당신에게 적합한 설명을 찾을 수 있을 것입니다.
따라서 수학적 계산에서 H1 이상의 기간에 _Period 변수가 반환 하는 값을 사용하십시오 .
그리고 누가 실수했는지 즉시 이해하게 될 것입니다.