[아카이브!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 2. - 페이지 395

 
KostelloArtua :

조언 정말 감사합니다!!! 내 질문을 알아 냈습니다. 시장 주문을 할 때 필요한 브로커, 즉 조건에 따라 정지 레벨을 동시에 설정할 수 없습니다. 이제 스탑 레벨이 없는 주문이 들어오고, 각 주문 직후에 스탑 레벨이 설정되도록 설정합니다. 문제가 발생했습니다. 주문의 가장 작은 부분이 수정되고 대부분의 경우 "전문가" 섹션에 다음이 표시됩니다.

2011.05.19 09:46:55 Spacenewcomer-Svecha CLM1,M15: 오픈 #30906670 99.79에 0.01 CLM1 판매
2011.05.19 09:46:55 Spacenewcomer-Svecha CLM1,M15: OrderModify 기능에 대한 유효하지 않은 티켓
2011.05.19 09:55:40 Spacenewcomer-Svecha ESM1,M5: 오픈 #30906787 1337.50 ok에 0.01 ESM1 구매

2011.05.19 10:00:03 Spacenewcomer-Svecha EURUSD,M15: OrderModify 기능에 대한 유효하지 않은 티켓

다음은 코드의 텍스트입니다.

{
res=OrderSend(Symbol(),OP_SELL,0.01,Bid,3,0,0,"main",_MagicNumber,0,Red);


OrderModify(OrderTicket(),OrderOpenPrice(),Ask+StopLoss*Point,Ask-TakeProfit*Point,0,Red);
리턴(0);

}

그리고 어드바이저 출시 후 가장 먼저 열리는 바로 그 수정된 것!

당연히 코드에서 오더수정을 잘못 설정했는데.. 말해봐!

res=OrderSend(Symbol(),OP_SELL,0.01,Bid,3,0,0,"main",_MagicNumber,0,Red);

주문 선택(res, SELECT_BY_TICKET);
OrderModify(주문 티켓(), OrderOpenPrice(), NormalizeDouble ( Ask+StopLoss*Point , Digits) , NormalizeDouble( Ask-TakeProfit*Point , Digits) ,0,Red);
 
ilunga :
res=OrderSend(Symbol(),OP_SELL,0.01,Bid,3,0,0,"main",_MagicNumber,0,Red);

주문 선택(res, SELECT_BY_TICKET);
OrderModify(주문 티켓(), OrderOpenPrice(), NormalizeDouble( Ask+StopLoss*Point , Digits) , NormalizeDouble( Ask-TakeProfit*Point , Digits) ,0,Red);
힌트 감사합니다!!!
 
Sancho77 :
친애하는 프로그래머 여러분, 고문 개선에 대한 조언을 구합니다. 열린 입장이 있습니다. 잠시 후 같은 방향으로 열라는 두 번째 신호가 있습니다. 첫 번째 주문이 이미 긍정적인 영역에 있는 경우에만 두 번째 신호를 보충하고 싶습니다. 나는 이제 잔액과 자본의 크기를 비교하여 이것을 구현했지만(자본이 잔액보다 크면 미결 주문이 검은색으로 표시됨) 여러 Expert Advisors가 동일한 계정에서 작업하는 경우 이 옵션은 작동하지 않습니다.
기존 오픈 라스트 오더에 대한 손익 결정 코드를 알려주세요.

티켓 번호가 저장되어 있으면 간단히

 OrderSelect (ticket, SELECT_BY_TICKET);

if (OrderProfit() > )

{

           // доливаем ордер

}
 
ilunga :

티켓 번호가 저장되어 있으면 간단히


고맙습니다! 마지막 주문의 티켓을 저장하는 방법을 알려주시겠습니까?
 
Sancho77 :
고맙습니다! 마지막 주문의 티켓을 저장하는 방법을 알려주시겠습니까?

글쎄, 전역 변수 int 티켓을 선언하는 가장 간단한 옵션으로

OrderSend(...)가 티켓 = OrderSend(...)로 대체되는 곳

따라서 항상 마지막으로 열린 주문 번호를 저장합니다.

또는 "KimIV의 유용한 기능" 항목만 참조하십시오.

 
ilunga :

글쎄, 전역 변수 int 티켓을 선언하는 가장 간단한 옵션으로

OrderSend(...)가 티켓 = OrderSend(...)로 대체되는 곳

따라서 항상 마지막으로 열린 주문 번호를 저장합니다.

또는 "KimIV의 유용한 기능" 항목만 참조하십시오.

도와 주셔서 감사합니다!
 
rustein :

오류를 찾도록 도와주세요

감사해요


BuySL* Point // зачем умножать на Point ? Тоже самое для SelSL*Point
 
khorosh :

감사해요,

몰라 ... 효과가있을 줄 알았는데 없으면 작동하지 않습니다. 나는 그것을했고 작동합니다 ....

 //-----
   double Spread = ( NormalizeDouble (Ask, Digits ) - NormalizeDouble (Bid, Digits )) / Point ;
   double BuySL = NormalizeDouble ( iCustom ( NULL , 0 , "NRTR" ,AveragePeriod, 0 , 1 ), Digits );
   double SelSL = NormalizeDouble ( iCustom ( NULL , 0 , "NRTR" ,AveragePeriod, 1 , 1 ), Digits );
//-----
   int Orders = OrdersTotal ();
   for ( int i= 0 ; i<Orders; i++)
  {
     if (!( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))) continue ;
     if (OrderSymbol() != Symbol ()) continue ;
    {
       if (OrderType() == OP_BUY && OrderMagicNumber()==Magic && OrderStopLoss() != BuySL-Spread* Point
      && BuySL-Spread* Point > OrderStopLoss() && BuySL-Spread* Point > OrderOpenPrice())
      {
        OrderModify(OrderTicket(),OrderOpenPrice(),BuySL-Spread* Point ,OrderTakeProfit(), 0 , CLR_NONE );
      }
       if (OrderType() == OP_SELL && OrderMagicNumber()==Magic && OrderStopLoss() != SelSL+Spread* Point
      && SelSL+Spread* Point < OrderStopLoss() && SelSL+Spread* Point < OrderOpenPrice())
      {
        OrderModify(OrderTicket(),OrderOpenPrice(),SelSL+Spread* Point ,OrderTakeProfit(), 0 , CLR_NONE );
      }
    }
  }
}

 
Roger :
PRICE_OPEN!!!! - 이 가격에 사용할 수 없습니다! 지표에 대해서만 작동합니다. Bid 또는 Ask를 사용하십시오.

감사해요!!! 네, 이 경우에는 100파운드입니다.
 

얘들아 질문이 더 복잡해.......

주어진 이익에 도달할 때 EA가 모든 주문을 닫도록 하는 방법 .... 하나의 기호에 대한 주문만 닫기 ..

예: 고문은 3쌍으로 작업하고 하나의 기호에 대한 모든 주문을 마감하는 금액은 100r ...

100 루블 이상의 유로 달러 에서 그는 유로 달러로만 주문을 마감하고 다른 경우에는 200 루블이 될 수 있습니다.

accountbalance()를 사용하면 세 쌍의 금액이 100루블을 초과하는 경우에만 고문이 닫힙니다. 이것은 나를 위해 작동하지 않습니다 !!!!

도와주세요.......