FOTOGRAF14 : 대괄호 onstart의 두 가지 오류가 강조 표시되었습니다. for 루프에 괄호가 충분하지 않은 것 같습니다. 11 오류, 기적을 강조 표시합니다 !!!
기적은 없습니다... " ')' - 프로그램의 예기치 않은 종료 " - 예기치 않은 종료 ... " '{' - 불균형 괄호 " - 닫히지 않은 괄호 ... = 불완전한 괄호, '{' 누락 또는 추가 . . 코드를 잘 확인하고 필요에 따라 추가하거나, 초과하는 부분은 제거해야 합니다. ...
//| 9.1.4.5 OrderDelete.mq4 |
//| Copyright 2016, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+1
void OnStart ()
{
string Symb= Symbol (); //Финансовый инструмент
double Dist= 1000000.0 ; //Предустановка
double Price;
int Limit_Stop=- 1 ; // Пока отложенных нет
int Tip;
double Win_Price= WindowPriceOnDropped (); //Здесь брошен скрипт
//-------------------------------------------------------------------+2
for ( int i= 1 ; i<= OrdersTotal (); i++) // Цикл выбора ордеров
{
if ( OrderSelect (i- 1 , SELECT_BY_POS )== true ) //Eсли ордер выбран
{
//------------------------------------------------------------------+3
if ( OrderSymbol ()!=Symb) continue //не ваш фин. инструмент
int Tip= OrderType (); //Тип ордера
if (Tip< 2 ) continue //Рыночный ордер
//------------------------------------------------------------+4
double Price= OrderOpenPrice (); //Цена откр. отлож. ордера
if ( NormalizeDouble ( MathAbs (Price-Win_Price), Digits )<
NormalizeDouble (Dist, Digits ))
{
Dist= MathAbs (Price-Win_Price); // Новое значение
Limit_Stop=Tip; //Есть отложенный ордер
int Ticket= OrderTicket (); // номер ордера
}
}
//+---------------------------------------------------------------+5
switch (Limit_Stop)
{
case 2 : string Texst= "BuyLimint " ;
break ;
case 3 : Texst= "SellLimint " ;
break ;
case 4 Texst= "BuyStop " ;
break ;
case 5 Texst= "SellStop " ;
break ;
}
//------------------------------------------------------------------+6
//ЦИКЛ ЗАКРЫТИЯ ОРДЕРА
//--------------------------------------------------------------------
while ( true ) // цикл закрытия ордера
{
if (Limit_Stop==- 1 ) //если отложенных нет
{
Alert ( "по " ,Symb, "отложенных ордеров" ); //если отложенных нет
break ;
}
//-----------------------------------------------------------------+7
Alert ( "Попытка удалить " , "" ,Ticket, "ожидание ответа.." );
bool Ans= OrderDelete (Ticket); //Удаление ордера
//---------------------------------------------------------------------
if (Ans== true )
{
Alert ( "Удалён ордер " ,Text, "" ,Ticket);
break ;
}
int Error= GetLastError ();
switch (Error)
{
case 4 : Alert ( "Торговый сервер занят. Пробуем ещё раз.." );
Sleep ( 3000 ); //Обновим данные
continue ; //На следующую итерацию
case 137 : Alert ( "Брокер занят. Пробуем ещё раз..." );
Sleep ( 3000 );
continue ;
case 146 : Alert ( "Подсистема торговли занята. Пробуем ещё раз..." );
Sleep ( 500 );
continue ; // На следующую итерацию
}
switch (Error) //Критические ошибки
{
case 2 : Alert ( "Oбщая ошибка." );
break ; //Выход из switch
case 64 : Alert ( "Счёт заблокирован." );
break ; //Выход из switch
case 133 : Alert ( "Торговля заблакирована." );
break ;
case 139 : Alert ( " Ордер заблакирован и уже обрабатывается." );
break ;
case 145 : Alert ( "Модификация запрещена.Ордер слишком близок к рынку" );
break ;
default : Alert ( "Возникла ошибка." ,Error); //Другие варианты //Выход из switch
}
break ;
}
//---------------------------------------------------------------------+
Alert ( "Скрипт законччил работу-----------------------." );
return ;
}
대괄호 onstart의 두 가지 오류가 강조 표시되었습니다. for 루프에 괄호가 충분하지 않은 것 같습니다. 11 오류, 기적을 강조 표시합니다 !!!
대괄호 onstart의 두 가지 오류가 강조 표시되었습니다. for 루프에 괄호가 충분하지 않은 것 같습니다. 11 오류, 기적을 강조 표시합니다 !!!
페이지 25, 27, - 세미콜론이 없습니다.
페이지 44, 48, 50, 69, - Textst, 컴파일러는 그것이 무엇인지 이해하지 못합니다. 'Text'는 선언된 식별자가 아닙니다 = 처리해야 합니다.
페이지 48, 50, - 피연산자 예상 = 콜론이 생략되었을 가능성이 큽니다.
페이지 64 - 티켓 = 선언되지 않은 식별자입니다.
등은 실수를 정리합니다.
코드를 삽입해야 하고 표시되지 않는 코드를 삽입하고 싶습니다.
삽입된 코드 뒤에 다음과 같이 입력해야 합니다.
***
포럼 결함
설계상 마지막 주문을 건너뛰는 이유는 무엇입니까?
{
if ( OrderSelect ( i- 1 , SELECT_BY_POS )== true ) //Eсли ордер выбран
{