int start()
{
double Price=Ask+ 300 * Point ;
double SL=Price- 300 * Point ;
double TP=Price+ 150 * Point ;
bool New_Bar;
if (Time[ 0 ]) // если образовался новый бар int Ticket= OrderSend ( Symbol (),OP_BUYSTOP, 0.1 ,Price, 3 ,SL,TP ); // выставить отложенный ордерreturn ;
Fun_New_Bar();
if ( New_Bar== true ) // если образовался следующий бар
OrderDelete(Ticket); // удалить отложенный ордер//+------------------------------------------------------------------+void Fun_New_Bar(); //НО ПО ОТНОШЕНИЮ К ЭТОЙ СТРОКЕ КОМПИЛЯТОР ПИШЕТ ОШИБКУ '(' - function definition unexpected
{
staticdatetime New_Time= 0 ;
New_Bar= false ;
if ( New_Time!==Time[ 0 ])
New_Time=Time[ 0 ];
New_Bar= true ;
}
start() 함수 내부에 정의되어 있으므로 다른 함수 내부에서는 볼 수 없습니다. 또한 start() 본문 내부에 Fun_New_Bar()를 정의하려고 했지만 MQL에서는 이를 수행할 수 없으며 모든 함수는 전역 모듈 수준에서 선언해야 합니다. New_Bar 선언도 거기에 배치되어야 합니다.
감사합니다. 하지만 이 줄에서 "NOT"가 어디에 있는지 이해가 되지 않습니다. 같지 않음은 !==로 표시됩니다.
그리고 내 말은 - 새로운 바의 개장 시간이 나타나자 마자, 즉. 새로운 막대가 나타났습니다 - 주문을 여십시오.
실제로 이 코드는 매 5분 간격이 시작될 때 주문을 엽니다.
int start()
{
double Price=Open[0]+300*Point;
double SL=Price-300*Point;
double TP=Price+150*Point;
if (Time[0])
int Ticket=OrderSend(Symbol(),OP_BUYSTOP,0.1,Price,3,SL,TP );
}
네, 그래서요?
시각화 모드에서 작업할 때 여러 가지 제한 사항이 있습니다.
내가 뭘 잘못했어!!!!
나는 내 문제에 대한 해결책을 생각해 냈다.
/* 죄송합니다, 게시물을 약간 수정했습니다 - Vinin이 읽을 수 있도록 */
내가 뭘 잘못했어!!!!
나는 내 문제에 대한 해결책을 생각해 냈다.
/* 죄송합니다, 게시물을 약간 수정했습니다 - Vinin이 읽을 수 있도록 */
"마지막 막대의 시간이 0이 아닌 경우"를 의미합니다. 따라서 항상 0이 아닙니다.
다음으로 변수
bool New_Bar;
start() 함수 내부에 정의되어 있으므로 다른 함수 내부에서는 볼 수 없습니다. 또한 start() 본문 내부에 Fun_New_Bar()를 정의하려고 했지만 MQL에서는 이를 수행할 수 없으며 모든 함수는 전역 모듈 수준에서 선언해야 합니다. New_Bar 선언도 거기에 배치되어야 합니다.
또한 start() 함수를 한 번 실행하는 동안(루프되지 않은 경우) 막대의 형성을 확인하고 다음 막대의 형성을 기다리는 것은 불가능합니다. 정의에 따라 start()가 호출됩니다. 각 틱마다 완료됩니다(뉘앙스가 있지만 일반적으로) .
도움말을 다시 읽고 MQL 프로그램 실행 영역의 공백을 없애고 루프를 실행하지 않는 루프 프로그램 을 작성하는 예를 살펴보는 것이 좋습니다.
걱정해주셔서 감사합니다. 그리고 이 형식으로 코드를 얻으려면 어떤 버튼을 눌러야 하는지.
SRC------------------------\|/
------------------------------------ V
이 라인
"마지막 막대의 시간이 0이 아닌 경우"를 의미합니다. 따라서 항상 0이 아닙니다.
감사합니다. 하지만 이 줄에서 "NOT"가 어디에 있는지 이해가 되지 않습니다. 같지 않음은 !==로 표시됩니다.
그리고 내 말은 - 새로운 바의 개장 시간이 나타나자 마자, 즉. 새로운 막대가 나타났습니다 - 주문을 여십시오.
실제로 이 코드는 매 5분 간격이 시작될 때 주문을 엽니다.
int start() { double Price=Open[0]+300*Point; double SL=Price-300*Point; double TP=Price+150*Point; if (Time[0]) int Ticket=OrderSend(Symbol(),OP_BUYSTOP,0.1,Price,3,SL,TP ); }
나는 그것이 더 쉬운 방법인 것 같아서 다른 길로 가기로 결정했다.
대기 중인 주문을 삭제하지 말고 5분 촛불이 끝나지 않은 경우에만 대기 중인 주문을 하십시오.
저것들. 두 가지 조건이 충족될 때 보류 중인 주문을 하십시오. 첫 번째 조건이 충족되면
if (Time[0])
- 주문이 완료되었는지 확인했습니다.
그리고 두 번째 조건, 즉 5분이 경과하지 않은 경우에만 대기 주문을 설정하는 방법을 발행합니다. 만약 (---------- && ?????????)