초보자의 질문 MQL4 MT4 MetaTrader 4 - 페이지 139

 

테스터에서 어드바이저를 실행 중입니다. 주문을 수정할 때 BUYSTOP에서 오류가 발생합니다.

내가 이해하지 못하는 이유. 이동하도록 제안된 가격은 매도 가격(StopLevel =30)보다 40 더 높습니다. 가격이 정상화되었습니다. 그 밖에 무엇이 필요합니까 ???

 
khorosh :

테스터에서 어드바이저를 실행 중입니다. 주문을 수정할 때 BUYSTOP에서 오류가 발생합니다.

내가 이해하지 못하는 이유. 이동하도록 제안된 가격은 매도 가격(StopLevel =30)보다 40 더 높습니다. 가격이 정상화되었습니다. 그 밖에 무엇이 필요합니까 ???

나는 이것을 한 브로커와 만났습니다 - 10 대신 11 포인트를 더 높이십시오
 
Лауреат :
주문수량 설정 기능 만드는 방법 알려주세요! 예를 들어, 우리가 지정한 주문 수만큼 열리면 안 됩니다. mql4에서
 
콘스탄틴 에린 :
if(OrdersTotal() < OrdersMax) OrderSend(...); else Alert("개통 된 주문의 필요한 수 "); 이것을 사용하면 여러 개의 연속 주문이 열립니다! 거래에 대한 다음 신호가 있으면 주문이 아니라 첫 번째 오픈 주문 후 거래에 대한 다음 신호가 있는 경우 필요한 수의 주문을 열도록 하는 방법이 있습니다! ?
 

왜 아무도 도와주지 않아! 제발 .

 
Лауреат :
if(OrdersTotal() < OrdersMax) OrderSend(...); else Alert("필요한 수의 주문 이 열려 있습니다."); 이것을 사용하면 여러 개의 연속 주문이 열립니다! 거래에 대한 다음 신호가 있으면 주문이 아니라 첫 번째 오픈 주문 후 거래에 대한 다음 신호가 있는 경우 필요한 수의 주문을 열도록 하는 방법이 있습니다! ?
 enum Цвет   // Цвет флага
{
  Красный,
  Зеленый
};

Цвет Флаг=Красный;

void start()
{
   if (!Сигнал())Флаг=Зеленый;

   if (Сигнал()> 0 && Флаг==Зеленый)
   {
       OrderSend (Покупка...);
      Флаг=Красный;
   }

   if (Сигнал()< 0 && Флаг==Зеленый)
   {
       OrderSend (Продажа...);
      Флаг=Красный;
   }
}

int Сигнал()   // Сигналы покупки и продажи
{
   return ЧтоНадо;
}
줄보다 5줄 더 짧을 수 있지만 생각하기엔 너무 게으른...
 

사람들은 다음 논리에 따라 작동하는 후행 중지를 찾거나 수정하는 데 도움이 되는 위치를 알려줍니다.

예를 들어, BUY 주문이 TP = 100 및 SL = 200으로 개설 되었고 가격이 BUY로 이동하여 50포인트를 넘으면 SL은 시가가 되고 TP는 50포인트 멀어지는 식으로 계속해서 ? ???

무효 TrailingPositions(int otype)
{

int cnt = OrdersTotal();

int lMinProfit = 0; // 최소 포인트 수

int lTrailingStop = 40; // 트레일 설정 레벨(이전 SL 거리에서 몇 점 점프)

int lTrailingStep = 20; // 트레일 레벨(작동할 지점)

for (int i=0; i<cnt; i++)
{
if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) 계속
if (OrderSymbol() != Symbol()) 계속;

if (OrderType() == OP_BUY && otype == OP_BUY) {
if (Bid-OrderOpenPrice() > lMinProfit*Point) {
if (OrderStopLoss() < Bid-(lTrailingStop+lTrailingStep-1)*Point) {
if(OrderModify(OrderTicket(), OrderOpenPrice(), Bid-lTrailingStop*Point, TP + lTrailingStop * Point, 0, 파란색))
Print("후행 작업");
}
}
}

if (OrderType() == OP_SELL && otype == OP_SELL) {
if (OrderOpenPrice()-Ask > lMinProfit*Point) {
if (OrderStopLoss() > Ask+(lTrailingStop+lTrailingStep-1)*Point || OrderStopLoss() == 0) {
if(OrderModify(OrderTicket(), OrderOpenPrice(), Ask+lTrailingStop*Point, TP - lTrailingStop * Point, 0, Red))
Print("후행 작업");
}
}
}
 
LRA :
줄보다 5줄 더 짧을 수 있지만 생각하기엔 너무 게으른...
좋은 아이디어를 시도해야 합니다. 감사하다 . 그러나 onticket의 void OnTick() 함수와 함께 작동합니까?
 
안녕 동지들! "버튼" 개체를 설정하는 데 도움을 주세요. Expert Advisor에 코드를 배치해야 눌렸거나 누르지 않은 상태의 버튼이 차트에서 직접 bool 값을 반환할 수 있습니다. 미리 감사합니다!
 
Arseniy Barudkin :
안녕 동지들! "버튼" 개체를 설정하는 데 도움을 주세요. Expert Advisor에 코드를 배치해야 눌렸거나 누르지 않은 상태의 버튼이 차트에서 직접 bool 값을 반환할 수 있습니다. 미리 감사합니다!
 ObjectGetInteger (ChartId(), "имя кнопки" , OBJPROP_STATE )

여기