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

 

Expert Advisor에서 진행 중인 이벤트의 시간 기록과 함께 카운트다운을 사용했습니다.

 if (line1 < 0 && time == 0 ){time=Time[ 0 ];} //сработало предварительное условие входа, записываем время
if (time > 0 )shift=iBarShift( Symbol (), Period (),time); //находим индекс бара

조건이 작동하지 않는 경우

 if (line1 == 0 ){time= 0 ;}

그런 다음 인덱스는 각 막대와 함께 증가했습니다.

지표에서 특정 지표 뒤에 화살표를 한 번 넣어야 합니다.

표시기에서 동일한 작업을 시도했지만 아무 일도 일어나지 않습니다.

 int tikket; // расположено на глобальном уровне
datetime time; // расположено на глобальном уровне

///////////////////////////////////

for (i=limit1;i>= 0 ;i--)
     {
       if (ExtMapBuffer2[i]< 0 && time == 0 ){time=Time[i];}
       if (time > 0 )shift=iBarShift( Symbol (), Period (),time); //находим индекс бара
       if (ExtMapBuffer2[i]== 0 ){time= 0 ;tikket= 0 ;}
       if (ExtMapBuffer2[i]< 0 && shift>=shet && tikket== 0 ){tikket= 1 ; if (tikket> 0 )ExtMapBuffer3[i]=High[i]+ 150 * Point ;}
     }


" ExtMapBuffer2[i]< 0 " 화살표가 있는 첫 번째 막대에 있고 "shift>=shet"는 고려되지 않습니다.

논리적으로 " if (time > 0 )shift=iBarShift( Symbol (), Period (), time);"

어떻게 생각하나요?

 

친애하는 프로그래머 여러분, 여러분의 도움이 필요합니다.

CloseAllOrders Expert Advisor를 컴파일하려고 했지만 다음 항목이 표시됩니다.

------------------------------------------------

'CloseAllOrders_v5.mq4'
'WinUser32.mqh'
함수 는 값을 반환해야 합니다. CloseAllOrders_v5.mq4 30 22
함수는 값을 반환해야 합니다. CloseAllOrders_v5.mq4 79 41
오류 0개, 경고 2개

--------------------------------------------------

고문이 일을 하려면 어떻게 해야 합니까?

고문이 붙어 있습니다.

미리 감사드립니다.

감사합니다,

파일:
 
Geowind64 :

친애하는 프로그래머 여러분, 여러분의 도움이 필요합니다.

CloseAllOrders Expert Advisor를 컴파일하려고 했지만 다음 항목이 표시됩니다.

------------------------------------------------

'CloseAllOrders_v5.mq4'
'WinUser32.mqh'
함수는 값을 반환해야 합니다. CloseAllOrders_v5.mq4 30 22
함수는 값을 반환해야 합니다. CloseAllOrders_v5.mq4 79 41
오류 0개, 경고 2개

--------------------------------------------------

고문이 일을 하려면 어떻게 해야 합니까?

고문이 붙어 있습니다.

미리 감사드립니다.

감사합니다,


함수는 값을 반환해야 합니다.

 if (ret== IDCANCEL ) return ( 0 );

그리고

 if (ret1== IDCANCEL ) return ( 0 );

이 같은.

 

까다로운 질문:

어드바이저는 어떤 양초에 들어갈지 결정하는 설정을 가지고 있습니다. EA는 신호 후 3번째 캔들에서 지표 신호에서 거래를 엽니다. 시그널 이후 2번째 캔들에는 반대 방향의 시그널이 나타납니다. 신호가 반대 방향으로 나타날 때 우리가 입력하지 않도록 조건을 작성하는 방법은 무엇입니까?

extern int sdvig=3;//На какой свече заходим

 double pokupaem=iCustom(Symbol(),Per,"super-signals-channel",4,500,3,sdvig);

 double prodaem=iCustom(Symbol(),Per,"super-signals-channel",4,500,2,sdvig);

 if(OrdersTotal()==0)

 {

  double lot=(AccountBalance()/ MinLot)*0.01;

  if(center>Ask && pokupaem>0 && prodaem<1 && prodaem1<1 &&SelBuyDaily==Vhodim1)

  {

   x=OrderSend(Symbol(),OP_BUY,lot,Ask,3,0,0,Komment,Magic,0,Blue);

  }

  if(center<Bid && prodaem>0 && pokupaem<1 && pokupaem1<1 && SelBuyDaily==Vhodim2)

  {

   y=OrderSend(Symbol(),OP_SELL,lot,Bid,3,0,0,Komment,Magic,0,Red);

  }

 }

 

추가 변수로 문제를 해결했습니다. 우리는 현재 양초에 대한 신호로 지표를 처방합니다. 첫 번째 신호가 나타나면 변수에 한 자리를 할당하고 반대 신호가 나타나면 다른 자리를 할당합니다.

 ////////////////////////////////////////////////////////////////////////////////////////

 //                       Проверка на наличие обратного сигнала                       //

 //////////////////////////////////////////////////////////////////////////////////////

  double pokup=iCustom(Symbol(),Period(),"super-signals-channel",4,500,3,0);

  double prod=iCustom(Symbol(),Period(),"super-signals-channel",4,500,2,0);

 if(pokup>0){

  proverka=1;

  }

 if(prod>0){

  proverka=2;

  }

/////////////////////////////////////////////////////////////////////////////////////////////////////

//                  Блок открытия зделок при отключённых стоп-лосс и тейк-профит                  //

///////////////////////////////////////////////////////////////////////////////////////////////////

 if(OrdersTotal()==0)

 {

  double lot=(AccountBalance()/ MinLot)*0.01;

  if(center>Ask && pokupaem>0 && prodaem<1 && prodaem1<1 && SelBuyDaily==Vhodim1 && proverka==1)

  {

   x=OrderSend(Symbol(),OP_BUY,lot,Ask,3,0,0,Komment,Magic,0,Blue);

  }

  if(center<Bid && prodaem>0 && pokupaem<1 && pokupaem1<1 && SelBuyDaily==Vhodim2 && proverka==2)

  {

   y=OrderSend(Symbol(),OP_SELL,lot,Bid,3,0,0,Komment,Magic,0,Red);

  }

 }

 

안녕하세요, EA는 왜 열리나요... 그리고 주문은 일반적으로 가격 이상으로 열립니까? Metatrader의 전략 테스터에서 EA를 시도하고 있습니다.

다음과 같이 주문을 엽니다.

   RefreshRates();
   switch (send)
      {
       case 1 : ticked = OrderSend ( Symbol (), OP_BUY, lot, Ask, 4 , NormalizeDouble (Bid-SL* Point , Digits ), NormalizeDouble (Ask+TP* Point , Digits ), "Buy_" , magik, 0 , clrBlue ); break ;
       case 2 : ticked = OrderSend ( Symbol (), OP_SELL, lot, Bid, 4 , NormalizeDouble (Ask+SL* Point , Digits ), NormalizeDouble (Bid-TP* Point , Digits ), "Sell_" , magik, 0 , clrRed ); break ;
       default : ticked = 0 ;
      }



 
nr72 :

안녕하세요, EA는 왜 열리나요... 그리고 주문은 일반적으로 가격 이상으로 열립니까? Metatrader의 전략 테스터에서 EA를 시도하고 있습니다.

다음과 같이 주문을 엽니다.



Ask에서 구매가 열립니다. 시각화 차트에서 F8 키를 누르고 "일반" 탭에서 "매도 라인 표시" 확인란을 선택합니다. 모든 질문이 저절로 사라집니다.
 
artmedia70 :
Ask에서 구매가 열립니다. 시각화 차트에서 F8 키를 누르고 "일반" 탭에서 "매도 라인 표시" 확인란을 선택합니다. 모든 질문이 저절로 사라집니다.


고맙습니다! 지금은 이해...
 
alexey1979621 :
안녕하세요! 나는 올빼미에게 칠면조를 고정시킬 수 없으며 지식이 풍부한 사람들을 도울 수 없습니다.
유로 라인(녹색)이 파운드 라인(밝은 갈색)을 위에서 아래로 교차하면 유로 파운드 매도 주문이 열립니다. 파운드가 아래에서 위로 유로선을 넘으면 유로 파운드를 매수합니다.
나는 그것이 표시기를 보지 못한다고 로그에 씁니다.
첨부는 Expert Advisor 및 지표입니다.

미리 감사드립니다.


디컴파일을 퍼뜨리는 것은 권장하지 않습니다. 목욕하기 전에 조금만
 

1. 차트의 왼쪽 상단에 있는 빠른 거래 패널을 프로그래밍 방식으로 접을 수 있습니까?

2. 빠른 거래를 프로그래밍 방식으로 비활성화할 수 있습니까?