포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 815

 
evillive :

이 주기가 언제 끝나야 한다고 생각하십니까?

?

결정된:

if(R==0)

{

 while(true)

 {

  Sleep(30000);

  Alert("Ошибка!");

  DeleteBuy=OrderDelete(OrderTicketBuy);

  DeleteSell=OrderDelete(OrderTicketSell);

  return(1);

 }

}

이익 계산도.

while(true) 루프에 메시지 및 오류 처리 를 삽입했습니다. 주기가 작동하고 메시지가 기록되고 오류가 없습니다. 하지만 조건을 통과하지 않고 데이터가 업데이트되지 않는 것 같습니다.

파일:
test3_7.mq4  16 kb
 
CJIeCaPb :

while(true) 루프에 메시지 및 오류 처리를 삽입했습니다. 주기가 작동하고 메시지가 기록되고 오류가 없습니다. 하지만 조건을 통과하지 않고 데이터가 업데이트되지 않는 것 같습니다.

더 많은 힌트를 드리겠습니다.

이 주기는 모든 주문을 고려하지 않습니다. 또한 동일한 유형의 주문이 하나 이상 있는 경우(예: 3개의 바이스톱 주문이 있는 경우) 어떤 일이 발생합니까?

 for (i= 1 ;i<= OrdersTotal ();i++)
{
 Alert (i);
 if ( OrderSelect (i- 1 ,SELECT_BY_POS)== true )
 {
   if (OrderSymbol()!=Symb) continue ;
   if (OrderType()==OP_BUYSTOP)
  {
   OrderTicketBuy=OrderTicket();
   Alert ( "Buy" );
   }
   if (OrderType()==OP_SELLSTOP)
   {
   OrderTicketSell=OrderTicket();
   Alert ( "Sell" );
   }
  }
}


여기에서는 먼저 오더 유형 을 고려하고 그 다음에야 이 오더가 선택되는데, 일반적으로 그 반대여야 하며, 먼저 오더를 선택하고, 오더가 선택되면 유형을 보고 모든 면에서 조롱한다. :

 while (OrderType()==OP_BUY) //Buy
{
 RefreshRates();
 
 SelectBuy= OrderSelect (OrderTicketBuy,SELECT_BY_TICKET);
 ...
}
 
//--------------------------------------------------------------------------
//Sell
while (OrderType()==OP_SELL)
{
 RefreshRates();
  
 SelectSell= OrderSelect (OrderTicketSell,SELECT_BY_TICKET);
 ...
}
 


그리고 "switch-what-type-trawl-stoploss"에서 왜 정확히 어디에서나 계속 됩니까? 그리고 이 라인은 언제 하나와 두 번째 스위치에서 실행됩니까?

    CloseBuy=OrderClose(OrderTicketBuy,Lote,Bid, 1 ); continue ;//119
-----
    CloseSell=OrderClose(OrderTicketSell,Lote,Ask, 1 ); continue ; //119
 
evillive :


여기에서는 먼저 오더 유형을 고려하고 그 다음에야 이 오더가 선택되는데, 일반적으로 그 반대여야 하며, 먼저 오더를 선택하고, 오더가 선택되면 유형을 보고 모든 면에서 조롱한다. :

그래서 여기:

if(R==1)//238

{

 Alert("yes");

 R=0;

 SelectBuy=OrderSelect(OrderTicketBuy,SELECT_BY_TICKET);

}


if(R==2)//245

{

 Alert("yes");

 R=0;

 SelectSell=OrderSelect(OrderTicketSell,SELECT_BY_TICKET);

}

그리고 "switch-what-type-traws-stoploss"( = D. 무엇을 좋아하지 않습니까? 제 생각에는 옵션이 매우 명확합니다. ), 왜 모든 곳에서 계속 ??? 그리고 이 라인은 언제 하나와 두 번째 스위치에서 실행됩니까?

따라서 다음 조건을 뚫습니다.

 Timen=OrderCloseTime();

 if(Timen>0)

 {

  DeleteSell=OrderDelete(OrderTicketSell);

  OldProfit=0;

  WarBuy=true;

  break;

 }

글쎄, 일반적으로, 예, break는 OrderClose 라인에서 더 잘 보일 것입니다. 그런 다음 OrderDelete도 등록해야 합니다.

사악한 라이브 :

더 많은 힌트를 드리겠습니다.

이 주기는 모든 주문을 고려하지 않습니다. 또한 동일한 유형의 주문이 하나 이상 있는 경우(예: 3개의 바이스톱 주문이 있는 경우) 어떤 일이 발생합니까?

OrdersTotal은 1부터, OrderSelect 는 0부터 시작합니다. 맞습니다.

하나의 금융 상품에 동일한 유형의 주문이 두 개 이상 있습니까? 제외된. 하지만 다시 볼게요.

"if MA==price, then"에 최대한 가까운 조건이 필요합니다.

이것은 갈 것입니다:

if((MA>Open[0] && MA<Close[0]) || (MA<Open[0] && MA>Open[0]))

추신: 새해 복 많이 받으세요!

 
누군가에게 새해는 새해가 아닙니다. 새해 복 많이 받으세요!!!
 

새해 복 많이 받으세요!

저는 최근에 MQL 4를 배우기 시작했고 질문을 하고 싶었습니다.

예를 들어 주문을 여는 조건이 있습니다.

if (입찰>=SS+5*포인트)

OrderSend (Symbol(),OP_BUY,Lot,Ask,10,Ask-SL*Point,Ask+TP*Point,NULL,Magic,0,Green);

이제 실제 질문은 다음과 같습니다. 첫 번째 주문의 이익이 10포인트 이상인 경우 두 번째 주문을 여는 조건은 무엇입니까?

 
lexdemon :

새해 복 많이 받으세요!

저는 최근에 MQL 4를 배우기 시작했고 질문을 하고 싶었습니다.

예를 들어 주문을 여는 조건이 있습니다.

if (입찰>=SS+5*포인트)

OrderSend(Symbol(),OP_BUY,Lot,Ask,10,Ask-SL*Point,Ask+TP*Point,NULL,Magic,0,Green);

이제 실제 질문은 다음과 같습니다. 첫 번째 주문의 이익이 10포인트 이상인 경우 두 번째 주문을 여는 조건은 무엇입니까?

여기에서 검색하면 거의 모든 경우에 대한 많은 기능이 있습니다.

https://www.mql5.com/ru/forum/131859

 
lexdemon :

새해 복 많이 받으세요!

저는 최근에 MQL 4를 배우기 시작했고 질문을 하고 싶었습니다.

예를 들어 주문을 여는 조건이 있습니다.

if (입찰>=SS+5*포인트)

OrderSend(Symbol(),OP_BUY,Lot,Ask,10,Ask-SL*Point,Ask+TP*Point,NULL,Magic,0,Green);

이제 실제 질문은 다음과 같습니다. 첫 번째 주문의 이익이 10포인트 이상인 경우 두 번째 주문을 여는 조건은 무엇입니까?

이전 에 주문 OrderSelect(첫 번째 주문의 티켓, SELECT_BY_TICKET)를 선택했습니다 .

if(OrderOpenPrice()+10*포인트==문의)

OrderSend(Symbol(),OP_BUY,Lot,Ask,10,Ask-SL*Point,Ask+TP*Point,NULL,Magic,0,Green);

 
CJIeCaPb

 Нужно условие максимально приближенное к этому: "если MA==цене, то".

Такое  пойдет:

if((MA>Open[0] && MA<Close[0]) || (MA<Open[0] && MA>Open[0]))


만세. 효과가 있는 것 같다. 불필요한 연산이 진행되지 않도록 각 주기에 return과 "O" 연산자를 삽입했습니다.

한 가지 문제: 주문이 엉뚱하게 이루어집니다. 조건을 공식화하는 방법을 모르겠습니다.

파일:
test3.mq4  16 kb
 

안녕하세요, 나는 여기에이 질문을 하곤 했는데, 그들은 문제가 상인에게 있다고 말했습니다. 그 지원에서 그들은 이것이 터미널의 문제라고 말했습니다. metatrader 4에서 동일한 문제가 있는지 확인하십시오. 중요하다면 forexstart 상인이 있습니다.

결론은 제가 분 차트에서 작동 하는 거래 로봇을 작성 했다는 것입니다. 그는 역사를 분석한다. 많은 차트에서 시간별 - 일별 - 연간 차트에 기록이 있지만 약 한 달 반 동안의 기록이 제공되지 않습니다. 모든 것이 다시 위의 차트에 있지만 특정 날짜까지 반환된 다음 중단되고 그래프가 몇 달 전에 계속되는 경우가 여전히 있습니다.

어떻게 싸울 수 있습니까?


 
pycha :

안녕하세요, 나는 여기에이 질문을 하곤 했는데, 그들은 문제가 상인에게 있다고 말했습니다. 그 지원에서 그들은 이것이 터미널의 문제라고 말했습니다. metatrader 4에서 동일한 문제가 있는지 확인하십시오. 중요하다면 forexstart 상인이 있습니다.

결론은 제가 분 차트에서 작동하는 거래 로봇을 작성했다는 것입니다. 그는 역사를 분석한다. 많은 차트에서 시간별 - 일별 - 연간 차트에 기록이 있지만 약 한 달 반 동안의 기록이 제공되지 않습니다. 모든 것이 다시 위의 차트에 있지만 특정 날짜까지 반환된 다음 중단되고 그래프가 몇 달 전에 계속되는 경우가 여전히 있습니다.

어떻게 싸울 수 있습니까?


몇 번의 삭제 주기 후 - DC 서버에서 기록을 다운로드해도 여전히 중단이 있는 경우 이러한 기록을 제공합니다. Google Tickstory Lite를 사용하고 틱 기록 을 위한 많은 디스크 공간을 준비한 다음 해당 기록을 테스터에게 제공하면 10년 이상 후에 M1이 될 것입니다.