반대 순서 열기 - 페이지 3

 
RaptorUK :

MagicNumber 와 다른 Magic Number를 가지고 있거나 EA가 실행 중인 심볼 이외의 심볼에 대한 것이거나 OP_SELLLIMIT 또는 OP_BUYLIMIT인 경우일 수 있습니다. . . 또한 OrderDelete() 호출에서 반환 값을 확인해야 합니다. . .

왜 RefreshRates()를 호출해야 합니까? 제거하려는 것은 아니지만 현재 위치에서 RefreshRates()를 호출하는 이유를 설명할 수 있습니까?


함수 반환 값이란 무엇입니까? 어떻게 사용합니까?


안녕하세요 RaptorUK입니다.

내가 아는 한 MagicNumber는 동일하며 OP_SELLSTOP 및 OP_BUYSTOP입니다.

OrderDelete() 호출 , 무슨 말인지 이해하지 못하는 것 같습니다 ....

RefreshRates() 나는 그가 닫은 문제 후에 거기에 넣었습니다.

지금은 리스본(포르투갈)에 있습니다.

루이스

 
luisneves :


안녕하세요 RaptorUK입니다.

내가 아는 한 MagicNumber는 동일하며 OP_SELLSTOP 및 OP_BUYSTOP입니다.

OrderDelete() 호출 , 무슨 말인지 이해하지 못하는 것 같습니다 ....

OrderDelete()를 호출하면(OrderDelete() 함수를 사용하여) 값을 반환하고 부울 값을 반환합니다. 값이 true이면 OrderDelete()가 작동하고 false이면 OrderDelete()가 실패합니다. . . 따라서 반환 값을 확인하고 거짓이면 Print()를 사용하여 로그에 오류를 보고하거나 문제가 있다는 것을 알고 조사할 수 있도록 Comment() 또는 Alert()를 사용하십시오.

귀하의 코드를 기반으로 이러한 변경을 수행합니다. . . . 내 코드라면 오류, Bid, Ask, FreezeLevel, StopLevel 등의 경우에 더 많은 정보를 인쇄하기 위해 추가 변경을 할 것입니다.

 void CloseAll()
   {
   int OrdType, GLError;
   
   RefreshRates();
                    
   for ( int OrderPos = OrdersTotal ()- 1 ; OrderPos >= 0 ; OrderPos--)
       if ( OrderSelect (OrderPos, SELECT_BY_POS, MODE_TRADES)
         && OrderMagicNumber() == MagicNumber 
         && OrderSymbol() == Symbol ())
         {
         OrdType = OrderType();
         if (OrdType == OP_BUY || OrdType==OP_SELL)
            {
             if (!OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), UseSlippage, Yellow))
               GLError = GetLastError ();
            }

         if (OrdType == OP_SELLSTOP || OrdType == OP_BUYSTOP || OrdType == OP_BUYLIMIT || OrdType == OP_SELLLIMIT)
            {
             if (!OrderDelete(OrderTicket())
               GLError = GetLastError ();
            }

         if (GLError > 0 ) Print ( "Error Closing/Deleting Order, error # " , GLError, " for ticket: " , OrderTicket());         
         }
   } 
 
RaptorUK :

OrderDelete()를 호출하면(OrderDelete() 함수를 사용하여) 값을 반환하고 부울 값을 반환합니다. 값이 true이면 OrderDelete()가 작동하고 false이면 OrderDelete()가 실패합니다. . . 따라서 반환 값을 확인하고 거짓이면 Print()를 사용하여 로그에 오류를 보고하거나 문제가 있다는 것을 알고 조사할 수 있도록 Comment() 또는 Alert()를 사용하십시오.

귀하의 코드를 기반으로 이러한 변경을 수행합니다. . . . 내 코드라면 오류, Bid, Ask, FreezeLevel, StopLevel 등의 경우에 더 많은 정보를 인쇄하기 위해 추가 변경을 할 것입니다.


안녕하세요 RaptorUK입니다.

보류 중인 주문이 삭제되지 않은 이유는 이 경우 5핍이 낮았던 차익실현과 관련이 있습니다. 내가 그것을 10핍에 넣을 때 주문은 삭제됩니다. 내 혼란은 내가 손절매를 넣고 가격을 공개하고 동결 영역에서 이익을 취하는 루틴이 있었다면 이것이 작동하지 않는다는 사실에서 비롯됩니다. 좋아, 하지만 지금은 일하고 있다.

그건 그렇고, 일단 다른 하나가 트리거되면 반대 순서를 닫고 싶습니다. 이를 위해 이 추가 코드를 넣었지만(웃기 시작할 수 있습니다...) 하지만 아무것도 ....

도움이 되셨나요?

 while (IsTradeContextBusy()) Sleep ( 10 );
                   RefreshRates();
         Ticket= OrderSend ( Symbol (),OP_BUYSTOP,LotSize,BuyLevel,UseSlippage,BuyStopLoss,BuyTakeProfit, "Buy Stop Order" ,MagicNumber, 0 ,Green);
         if (Ticket> 0 )
         
           int o=OrderType();
           if (o==OP_BUY)
          OrderDelete(OrderTicket());        
           {
             if ( OrderSelect (Ticket,SELECT_BY_TICKET,MODE_TRADES)) Print ( "BUY Stop Order Opened : " ,OrderOpenPrice());
           }
         //else Print("Error opening BUY Stop Order : ",GetLastError());
 
luisneves :


안녕하세요 RaptorUK입니다.

1. 보류 중인 주문이 삭제되지 않은 이유는 이 경우 5핍으로 낮았던 차감 이익과 관련이 있습니다. 내가 그것을 10핍에 넣을 때 주문은 삭제됩니다. 내 혼란은 내가 손절매를 넣고 가격을 공개하고 동결 영역에서 이익을 취하는 루틴이 있었다면 이것이 작동하지 않는다는 사실에서 비롯됩니다. 좋아, 하지만 지금은 일하고 있다.

2. 그건 그렇고, 나는 다른 하나가 트리거되면 반대 순서를 닫고 싶습니다. 그것을 위해이 추가 코드를 넣었지만(웃기 시작할 수 있습니다...) 하지만 아무것도 ....

도움이 되셨나요?


1. 아, 이것이 반환 값을 확인하고 오류 코드 등을 인쇄해야 하는 이유입니다. 모든 주문에 대한 모든 거래 조치가 여기의 정보를 준수하는지 확인해야 합니다. 거래 요구 사항 및 제한 사항

2. 주문 유형이 OP_BUYSTOP에서 OP_BUY로 변경될 때까지 기다려야 하므로 시간이 걸릴 수 있으므로 계속 확인해야 합니다. . . OP_BUY로 바뀌면 반대 주문을 닫을 수 있으며 그렇게 하려면 올바른 주문을 찾아 마감해야 합니다. 비슷한 주제를 다루는 WhooDoo22 와의 최근 대화를 읽어야 합니다.

 

안녕하세요 RaptorUk입니다.

나는 당신이 제공한 링크를 따라 갔지만 그럼에도 불구하고 흥미로운 주제는 너무 많은 다양한 의견이 있어서 그 안에 빠져들게 하는 것입니다.

그래서, 나는 반대 보류를 닫는 코드를 도입했고 다시는 아무 것도 볼 수 없으며 도움을 주는 저널에서 아무것도 볼 수 없습니다..... 내가 여기서 놓치고 있는 것은 ......

어떤 빛이라도 감사합니다.....

루이스

 //Sell Pending Stop Loss & Take Profit Calculation     
     
   if (StopLoss> 0 )SellStopLoss=PendingSellPrice+(StopLoss*pt);
   if (TakeProfit> 0 )SellTakeProfit=PendingSellPrice-(TakeProfit*pt);
   
//Place Sell Pending Order
        
         while (IsTradeContextBusy()) Sleep ( 10 );
                   RefreshRates();       
         Ticket= OrderSend ( Symbol (),OP_SELLSTOP,LotSize,SellLevel,UseSlippage,SellStopLoss,SellTakeProfit, "Sell Stop Order" ,MagicNumber, 0 ,Red);
         if (Ticket> 0 )OppositePendindDel();          
           {
             if ( OrderSelect (Ticket,SELECT_BY_TICKET,MODE_TRADES)) Print ( "SELL Stop Order Opened : " ,OrderOpenPrice());
           }
         //else Print("Error opening SELL Stop Order : ",GetLastError());
         } 
//+---------------------------------------------------------------------------+
int OppositePendindDel()
{
 int c,d,GLError;
 int e= OrdersTotal ();
 
 for (c=e- 1 ;c>= 0 ;c--)
 {  
   OrderSelect (c,SELECT_BY_POS,MODE_TRADES);
   if (OrderType()==OP_BUY||OrderType()==OP_SELL)
   {
     for (d=e- 1 ;d>= 0 ;d--)
    {
     OrderSelect (d,SELECT_BY_POS,MODE_TRADES);
     
       if (OrderType()==OP_SELLSTOP)
     {
       if (!OrderDelete(OrderTicket()))
            GLError = GetLastError ();
      
       return ( 1 );
      }
       if (OrderType()==OP_BUYSTOP)
      {
       if (!OrderDelete(OrderTicket()))
             GLError = GetLastError ();
       }
       if (GLError > 0 ) Print ( "Error Closing/Deleting Order, error # " , GLError, " for ticket: " , OrderTicket());
       return ( 1 );
       }
      }
     }
    }
 
luisneves :

안녕하세요 RaptorUk입니다.

나는 당신이 제공한 링크를 따라 갔지만 그럼에도 불구하고 흥미로운 주제는 너무 많은 다양한 의견이 있어서 그 안에 빠져들게 하는 것입니다.

그래서, 나는 반대 보류를 닫는 코드를 도입했고 다시 아무 것도 볼 수 없으며 도움을 주는 저널에서 아무것도 볼 수 없습니다..... 내가 여기서 놓치고 있는 것은 ......

랩터영국 :

2. 주문이 OP_BUYSTOP에서 OP_BUY로 변경될 때까지 기다려야 하며 시간이 걸릴 수 있으므로 계속 확인해야 합니다 . . . OP_BUY로 바뀌면 반대 주문을 닫을 수 있으며 그렇게 하려면 올바른 주문을 찾아 마감해야 합니다.

 
RaptorUK :



안녕하세요 RaptorUK 입니다.

좋아, 이제 하나의 보류 중인 주문이 트리거된 후 반대 보류 중인 주문 을 삭제하는 것 같습니다. 하지만 이제 일부 주문이 두 배로 들어옵니다. 즉, ea는 동시에 매도와 매수를 하고 두 주문에 대해 로트 크기가 동일할 때 시간을 주문해야합니다. 미쳐가기 시작했다.....

도움이 필요하시면 부탁드립니다!!!!

파일:
 
luisneves :


안녕하세요 RaptorUK 입니다.

좋아, 이제 하나의 보류 중인 주문이 트리거된 후 반대 보류 중인 주문을 삭제하는 것 같습니다. 하지만 이제 일부 주문이 두 배로 들어옵니다. 즉, ea는 동시에 매도와 매수를 하고 두 주문에 대해 로트 크기가 동일할 때 시간을 주문해야합니다. 미쳐가기 시작했다.....

도움이 필요하시면 부탁드립니다!!!!

당신의 코드를 보면 당신이 하려는 일을 따라가기가 매우 어렵다는 것을 알았습니다. 저를 도와줄 코멘트가 거의 없습니다. 당신의 start() 함수는 당신이 각 틱에서 무엇을 하려고 하는지 보여주지 않습니다, 당신은 일관성이 없습니다 들여쓰기 레이아웃.

GoToClose() 함수는 무엇을 의미합니까? 함수의 시작 부분에서 수행해야 하는 작업을 설명하는 몇 가지 설명을 했다면 함수가 실제로 수행하려는 작업을 수행하는지 확인할 수 있습니다. 현재 함수가 하는 일은 CloseAll() 함수를 호출하는 것입니다. 귀하의 기호 및 매직 번호와 일치 하는 단일 거래가 금액에 관계없이 이익이 되거나 기호 및 매직 번호에 대해 7개 이상의 거래가 있는 경우 . CloseAll()은 귀하의 Symbol & Magic Number에 대한 거래만 마감하므로 다른 Symbol 또는 Magic Number에 대해 7번의 거래가 있는 경우 GoToClose()는 CloseAll()을 계속 호출하고 다른 일은 일어나지 않습니다.


데모 계정 에 수동 거래를 한 다음 EA를 실행하면 아무 일도 일어나지 않습니다. . . 거래를 볼 수는 있지만 무시하지 않고 계산하고 결과적으로 자신의 거래를 하지 않으며 이 공개 거래를 닫지 않습니다. 이 상황에서 EA는 어떻게 해야 합니까? 매직넘버가 다른 다른 EA가 거래를 했다면?

무엇을 하려는지 명확하게 파악하고, 흐름과 프로세스가 명확하도록 start() 함수에 주석을 달고, 각 함수가 무엇을 하려는지 명확하도록 모든 함수에 주석을 달아야 합니다. 이 작업을 수행하면 문제가 어디에 있는지 잘 이해할 수 있습니다. . .

 
RaptorUK :

당신의 코드를 보면 당신이 하려는 일을 따라가기가 매우 어렵다는 것을 알았습니다. 저를 도와줄 코멘트가 거의 없습니다. 당신의 start() 함수는 당신이 각 틱에서 무엇을 하려고 하는지 보여주지 않습니다, 당신은 일관성이 없습니다 들여쓰기 레이아웃.

GoToClose() 함수는 무엇을 의미합니까? 함수의 시작 부분에서 수행해야 하는 작업을 설명하는 몇 가지 설명을 작성했다면 함수가 실제로 수행하려는 작업을 수행하고 있는지 확인할 수 있습니다. 현재 함수가 하는 일은 CloseAll() 함수를 호출하는 것입니다. 귀하의 기호 및 매직 번호와 일치 하는 단일 거래가 금액에 관계없이 이익이 되거나 기호 및 매직 번호에 대해 7개 이상의 거래가 있는 경우 . CloseAll()은 귀하의 Symbol & Magic Number에 대한 거래만 마감하므로 다른 Symbol 또는 Magic Number에 대해 7번의 거래가 있는 경우 GoToClose()는 CloseAll()을 계속 호출하고 다른 일은 일어나지 않습니다.


데모 계정에 수동 거래를 한 다음 EA를 실행하면 아무 일도 일어나지 않습니다. . . 거래를 볼 수는 있지만 무시하지 않고 계산하고 결과적으로 자신의 거래를 하지 않으며 이 공개 거래를 닫지 않습니다. 이 상황에서 EA는 어떻게 해야 합니까? 매직넘버가 다른 다른 EA가 거래를 했다면?

무엇을 하려는지 명확하게 파악하고, 흐름과 프로세스가 명확하도록 start() 함수에 주석을 달고, 각 함수가 무엇을 하려는지 명확하도록 모든 함수에 주석을 달아야 합니다. 이 작업을 수행하면 문제가 어디에 있는지 잘 이해할 수 있습니다. . .


안녕하세요 RaptorUK입니다.

혼란을 드려 죄송합니다. 지금까지 EA는 이 문제를 제외하고는 예상대로 하고 있는 것 같습니다.

EA는 이전 주문이 로트 크기 증분과 동일한 TakeProfit 금액으로 TakeProfit을 취하지 않을 때마다 반대 주문을 열어야 합니다. 문제는 한 번에 한 주문만 넣어야 한다는 것입니다. 하나 이상. 보고서를 보면 주문 6과 7이 모두 매도이고 주문 7이 매수임을 알 수 있습니다.

이제 함수별로 코드를 넣었습니다. 내가 그 모든 무효 호출을 가지고 있는 이유는 내가 완전히 작동하는 독립 블록을 갖고 싶기 때문입니다. 여기서 나는 이것을 정렬하는 데 문제가 있다는 것을 알고 있습니다. Go to Open 및 Go to Close는 우리가 t have open order the firs go to open if not go close to (나는 이것을 작업해야 하는 혼란입니다...) 저는 심볼과 매직 넘버를 사용하여 ea가 처리하는 것이 자신의 주문임을 보장합니다.

주요 전략은 다음과 같습니다(블록은 이 순서대로).

1- 2개의 보류 주문이 가격보다 높거나 낮습니다. 가격이 트리거되면 반대 보류 중 하나가 삭제됩니다. 작동 중입니다.

2- 가격이 TakeProfit을 선택하면 주문이 닫히고 EA가 두 개의 보류 주문을 넣어 다시 시작하고 프로세스가 다시 시작됩니다. 이것은 작동 중입니다

2- 가격이 TakeProfit을 선택하지 않고 TakeProfit 금액을 낮추면(구매 주문의 경우) 다시 반송되면 반대 판매 주문 이 동일한 TakeProfit 금액과 이전 주문보다 로트 크기가 더 커야 합니다. 이것은 둘 이상의 주문을 넣고 보고서에서 주문 6과 7이 모두 매도 주문이고 7이 매수여야 하는 주문 중 하나만 있어야 한다는 점을 제외하고는 작동합니다.

3- 마지막 주문이 이익을 얻으면 모든 미결 주문이 마감되어야 합니다. 그리고 프로세스는 이득을 시작합니다.이것이 작동합니다.

4- 이 탁구에서는 최대 7번 주문이 TakeProfit을 선택하지 않으면 이 주문이 마감될 것으로 예상해야 합니다.

5-증가 이익을 위한 기회를 열려면 손익분기점 또는 최소 이익 후행 정지를 사용해야 합니다. 예를 들어 TakeProfit 2핍을 원하면 가격이 3핍에 도달할 때까지 기다린 다음 이러한 기능 중 하나(손익분기점 또는 최소 이익 후행 정지)는 2핍 수준에서 정지선을 설정합니다. 가격이 상승하면(구매의 경우) 정지선이 함께 이동하고 가격이 1핍 반등하면 주문이 마감되고 이익이 있기 때문에 모든 미결 주문이 마감됩니다. 여기에서 이것이 제대로 작동할 수 있는지 확실하지 않습니다.

감사해요

루이스

파일:
 
luisneves :


안녕하세요 RaptorUK입니다.

혼란을 드려 죄송합니다. 지금까지 EA는 이 문제를 제외하고는 예상대로 하고 있는 것 같습니다.

EA는 이전 주문이 로트 크기 증분과 동일한 TakeProfit 금액으로 TakeProfit을 취하지 않을 때마다 반대 주문을 열어야 합니다. 문제는 한 번에 한 주문만 넣어야 한다는 것입니다. 하나 이상. 보고서를 보면 주문 6과 7이 모두 매도이고 주문 7이 매수임을 알 수 있습니다.

이제 함수별로 코드를 넣었습니다. 내가 그 모든 무효 호출을 가지고 있는 이유는 내가 완전히 작동하는 독립 블록을 갖고 싶기 때문입니다. 여기서 나는 이것을 정렬하는 데 문제가 있다는 것을 알고 있습니다. Go to Open 및 Go to Close는 우리가 t have open order the firs go to open if not go close to (나는 이것에 대해 작업해야 하는 혼란입니다...) 저는 기호와 마법 번호를 사용하여 ea가 처리하는 것이 자체 주문임을 보장합니다.

주요 전략은 다음과 같습니다(블록은 이 순서대로).

1- 2개의 보류 주문이 가격보다 높거나 낮습니다. 가격이 트리거되면 반대 보류 중 하나가 삭제됩니다. 작동 중입니다.

2- 가격이 TakeProfit을 선택하면 주문이 닫히고 EA가 두 개의 보류 주문을 넣어 다시 시작하고 프로세스가 다시 시작됩니다. 이것은 작동 중입니다

2- 가격이 TakeProfit을 선택하지 않고 TakeProfit 금액이 감소하면(구매 주문의 경우) 다시 반등하는 경우 반대 판매 주문은 동일한 TakeProfit 금액과 이전 주문보다 로트 크기가 더 커야 합니다. 이것은 둘 이상의 주문을 넣고 보고서에서 주문 6과 7이 모두 매도 주문이고 7이 매수여야 하는 주문 중 하나만 있어야 한다는 점을 제외하고는 작동합니다.

3- 마지막 주문이 이익을 얻으면 모든 미결 주문이 마감되어야 합니다. 그리고 프로세스는 이득을 시작합니다.이것은 작동합니다.

4- 이 탁구에서는 최대 7번 주문이 TakeProfit을 선택하지 않으면 이 주문이 마감될 것으로 예상해야 합니다.

5-증가 이익을 위한 기회를 열려면 손익분기점 또는 최소 이익 후행 정지를 사용해야 합니다. 예를 들어 TakeProfit 2핍을 원하면 가격이 3핍에 도달할 때까지 기다린 다음 이러한 기능 중 하나(손익분기점 또는 최소 이익 후행 정지)는 2핍 수준에서 정지선을 설정합니다. 가격이 상승하면(구매의 경우) 정지선이 함께 이동하고 가격이 1핍 반등하면 주문이 마감되고 이익이 있기 때문에 모든 미결 주문이 마감됩니다. 여기에서 이것이 제대로 작동할 수 있는지 확실하지 않습니다.

감사해요

루이스

좋아, 여러 주문이 열렸을 때 무엇이 잘못되었는지 찾았습니다. 이것을 코드에 포함시켜야 했습니다(Negrito Italic).

Open Opposite Order
 
   double   MartingaleBuyPrice = Ask+StopLevel;
   if (MartingaleBuyPrice<UpperStopLevel)MartingaleBuyPrice=UpperStopLevel+MinStop*pt;
   
   double MartingaleSellPrice= Bid-StopLevel;
   if (MartingaleSellPrice>LowerStopLevel)MartingaleSellPrice=LowerStopLevel-MinStop*pt;
   
   int Op;  
   
   for ( int Counter = OrdersTotal ()- 1 ; Counter >= 0 ; Counter--)
      {
       if ( OrderSelect (Counter,SELECT_BY_POS,MODE_TRADES))  
         {
         if (OrderSymbol() == Symbol ()&& OrderMagicNumber() == MagicNumber)
            {
            Op = OrderType();

             if (Op == OP_BUY && ((OrderOpenPrice()-OrderClosePrice())/pt)> ReturnDist && SellTicket== 0 )
               {                
               Sell Ticket = OrderSend ( Symbol (), OP_SELL, mlots, MartingaleSellPrice, UseSlippage, 0 , 0 , "Sell Order" , MagicNumber, 0 , Red);
               if ( Sell Ticket > 0 ) 
                  {
                   Print ( "Opposite Sell order placed # " , SellTicket);
                  AddLimitsSell();
                  }
               else
                  {
                   Print ( "Order Send failed, error # " , GetLastError () );
                  }
               }
               
             if (Op == OP_SELL && (OrderClosePrice()-OrderOpenPrice()/pt)> ReturnDist && BuyTicket== 0 )
               {               
               Buy Ticket = OrderSend ( Symbol (), OP_BUY, mlots, MartingaleBuyPrice, UseSlippage, 0 , 0 , "Buy Order" , MagicNumber, 0 , Green);
               if ( Buy Ticket > 0 )
                  {
                   Print ( "Opposite Buy order placed # " , BuyTicket);
                  AddLimitsBuy();
                  }
               else
                  {  
                   Print ( "Order Send failed, error # " , GetLastError ());
                  }   
               }
            }
         }
      }
   }
//+------------------------------------------------------------------+  
void AddLimitsBuy()
                  {
                   OrderSelect ( Buy Ticket,SELECT_BY_TICKET);
                  OpenPrice = OrderOpenPrice();
                  StopLevel = MarketInfo( Symbol (),MODE_STOPLEVEL)* Point ;
                                       RefreshRates();  
                                      UpperStopLevel = Ask + StopLevel;
                                      LowerStopLevel = Bid - StopLevel;
                                      
                                      
                                       if (StopLoss > 0 ) BuyStopLoss   = OpenPrice - (StopLoss * pt);
                   if (TakeProfit > 0 )BuyTakeProfit = OpenPrice + (TakeProfit * pt);
                                      
                                       if (BuyStopLoss > 0 && BuyStopLoss > LowerStopLevel) 
                                              {                                 
                                                    BuyStopLoss = LowerStopLevel - MinStop*pt;
                                              }
                                      
                                       if (BuyTakeProfit > 0 && BuyTakeProfit < UpperStopLevel) 
                                              {
                                                     BuyTakeProfit = UpperStopLevel + MinStop*pt;
                                              }

                                       if (IsTradeContextBusy()) Sleep ( 10 );        

                   if (BuyStopLoss > 0 || BuyTakeProfit > 0 ) 
                     {          
                      OrderModify(Ticket,OP_BUY,BuyStopLoss,BuyTakeProfit, 0 );                            
                     }
                    } 
//+------------------------------------------------------------------+
void AddLimitsSell()
                  {
                   OrderSelect ( Sell Ticket,SELECT_BY_TICKET);                 
                  OpenPrice = OrderOpenPrice();
                  StopLevel = MarketInfo( Symbol (),MODE_STOPLEVEL)* Point ;
                                      RefreshRates();   
                                      UpperStopLevel = Ask + StopLevel;
                                      LowerStopLevel = Bid - StopLevel;
                                      
                                      
                                       if (StopLoss > 0 ) SellStopLoss = OpenPrice + (StopLoss*pt);
                                       if (TakeProfit > 0 ) SellTakeProfit = OpenPrice - (TakeProfit*pt);
                                    
                                       if (SellStopLoss > 0 && SellStopLoss < UpperStopLevel) 
                                              {                                 
                                                    SellStopLoss = UpperStopLevel + MinStop*pt;
                                              }
                                       if (SellTakeProfit> 0 && SellTakeProfit > LowerStopLevel) 
                                              {
                                                    SellTakeProfit = LowerStopLevel - MinStop*pt;
                                              }
                                            
                                       if (IsTradeContextBusy()) Sleep ( 10 );       

                   if (SellStopLoss > 0 || SellTakeProfit > 0 ) 
                    {           
                      OrderModify(Ticket,OP_SELL,SellStopLoss,SellTakeProfit, 0 );
                    }                    
                   }  


보고서 파일 누락