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

 
valeryk :

bool NewBar()
{정적 날짜/시간 뉴바;
부울 res=거짓;
if(newbar==0)newbar=시간[0];
if(newbar!=시간[0]){res=true;newbar=시간[0];}
반환(res);
}

새로운 바의 존재.

뱃지가 개점가에 배치되는 것으로 알고 있습니다. 그리고 나는 종가에 무언가가 필요합니다.
그리고 저는 프로그래머가 아니기 때문에 귀하의 코드를 삽입할 수 없습니다. 특히 이 bool NewBar에서 맹세합니다()
 
supernyb :
뱃지가 바 개점가로 설정되어 있는 걸로 알고 있습니다. 그리고 나는 종가에 무언가가 필요합니다.
그리고 저는 프로그래머가 아니기 때문에 귀하의 코드를 삽입할 수 없습니다. 특히 이 bool NewBar에서 욕()
견적시간 참고하시고 아이콘설치시간 15분 이시간동안 변동될까요? 닫기[0]
 //+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   if (NevBar()) 
     {
     //в этом блоке размещайте ваш код
     }    
//----
   return ( 0 );
  }
//-----------------------------------------------------------------------------+
// Функция контроля нового бара                                                |
//-----------------------------------------------------------------------------+
bool NevBar(){
   static int PrevTime= 0 ;
   if (PrevTime==Time[ 0 ]) return ( false );
   PrevTime=Time[ 0 ];
   return ( true );} 
 

한 번 더 묻습니다. 안녕하세요, 저는 S. Kovalev의 교과서에서 스크립트를 기본으로 사용했습니다. 거래를 개시하고, 손절매를 설정하고, 이익을 취한 다음 거래가 끝날 때까지(즉, 정지 또는 이익의 실행) 기다렸다가 그 후에야 거래를 다시 열도록 Expert Advisor를 만들고 싶습니다. . 루프 도움말 및 루프 중단으로 시도했습니다. 할 수 있는 방법을 알려주세요. 손절매를 설정하지 않고 바로 이익을 취하는 것이 더 쉬울 거라고 생각했지만, 가격이 일정 수준에 도달하면 닫히는 것이지만 지금은 그러고 싶지 않기 때문입니다. 미끄러질까 두렵고 모든 포인트가 중요합니다. 그 결과, 한 거래 또는 때로는 한 번에 두어 번(또한 뭔가 잘못 되었습니까?) 거래를 시작한 후 거래를 닫고 나면 새로운 거래가 열리지 않는 것으로 나타났습니다. 또는 프로그램이 손절매의 실행을 기다리거나 이익을 취하도록 처방하는 방법을 알려주십시오.

//+----------------------------------------------- --------------------+
int start() //---- 시작 함수
{
이중 //---- 변수 선언
엑스,
와이;
//+----------------------------------------------- --------------------+
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-15*Point,Ask+15*Point); //---- 시가에서 15포인트의 스톱과 이익 을 매수하고 배치하는 시장가 주문
//+----------------------------------------------- --------------------+
while(x!=Ask-15*Point||y!=Ask+15*Point) //---- 이전 거래가 종료될 때까지 거래가 실행되지 않기를 원하는 조건, 즉 ~할 수 있다
{ //----- 하나의 거래만 열어둡니다.
계속하다; //---- 조건을 중단하고 다음 단계로 이동
}
//+----------------------------------------------- --------------------+
반품; //---- 리턴 함수
}
//+----------------------------------------------- --------------------+

 

신경안쓰시거나 멈추거나 가져가시거나, 미결주문이 있는지 없는지 확인만 해주시면 안될까요?

if( 주문 합계() <1)

 

이 상황에서 할 수 있는 일을 조언해 주십시오. 지표가 있습니다. 차트에 올리려면 먼저 세로선을 긋고 속성을 호출하고 숫자를 복사한 다음 이 숫자를 지표에 입력해야 합니다.

나는 당신이 마우스를 클릭하는 곳에 칠면조를 배치하고 싶습니다.

또는 극단적인 경우 차트에서 마우스를 이동할 수 있습니다.


파일:
indicator.mq4  3 kb
 
Begemot7 :

한 번 더 묻습니다. 안녕하세요, 저는 S. Kovalev의 교과서에서 스크립트를 기본으로 사용했습니다. 거래를 개시하고, 손절매를 설정하고, 이익을 취한 후 거래가 끝날 때까지(즉, 정지 또는 이익의 실행) 기다렸다가 그 후에야 거래를 다시 열도록 Expert Advisor를 만들고 싶습니다. . 루프 도움말 및 루프 중단으로 시도했습니다. 할 수 있는 방법을 알려주세요. 손절매를 설정하지 않고 바로 이익을 취하는 것이 더 쉬울 거라고 생각했지만, 가격이 일정 수준에 도달하면 닫히는 것이지만 지금은 그러고 싶지 않기 때문입니다. 미끄러질까 두렵고 모든 포인트가 중요합니다. 그 결과, 한 거래 또는 때로는 한 번에 두어 번(또한 뭔가 잘못 되었습니까?) 거래를 시작한 후 거래를 닫고 나면 새로운 거래가 열리지 않는 것으로 나타났습니다. 또는 프로그램이 손절매의 실행을 기다리거나 이익을 취하도록 처방하는 방법을 알려주십시오.

 int ticket=- 1 ;
int start()       //---- функеция старт            
  {
   double      //---- объявляю переменные 
  x,
  y;
   bool sel;
   //+------------------------------------------------------------------+
  sel= false ;
   if (ticket>= 0 )
   {
    sel= OrderSelect (ticket,SELECT_BY_TICKET); if (!sel) ticket=- 1 ;
   }
   if (ticket< 0 || (sel && ticket>= 0 && OrderCloseTime()> 0 )) ticket= OrderSend ( Symbol (),OP_BUY, 0.1 ,Ask, 3 ,Ask- 15 * Point ,Ask+ 15 * Point );
   return ;                                                           //---- функция return 
    }

그리고 다음과 같이 하는 것이 좋습니다(어드바이저가 다시 시작되는 경우).

 int ticket=- 1 ;
int init()
 {
   if ( GlobalVariableCheck ( "TICKET" )) ticket= GlobalVariableGet ( "TICKET" );
   else ticket=- 1 ;
 }
int start()          
 {
   bool sel;
  sel= false ;
   if (ticket> 0 )
   {
    sel= OrderSelect (ticket,SELECT_BY_TICKET); if (!sel) ticket=- 1 ;
   }
   if (ticket<= 0 || (sel && ticket> 0 && OrderCloseTime()> 0 ))
   {
    ticket= OrderSend ( Symbol (),OP_BUY, 0.1 ,Ask, 3 ,Ask- 15 * Point ,Ask+ 15 * Point );
     if (ticket> 0 ) GlobalVariableSet ( "TICKET" ,ticket);
   }
   return ; 
  }
 
r772ra :
견적시간 참고하시고 아이콘설치시간 15분 이시간동안 변동될까요? 닫기[0]


감사합니다, 이것이 제가 필요한 것입니다! 나는 당신이 말한대로했고 효과가있었습니다! 또한 StarPrice에 Close[0] 대신 Close[1]을 추가했습니다. 그리고 아이콘은 종가 로 그려지는 것으로 밝혀졌다. 동시에 하나의 막대는 내가 생각한대로 그려지기를 기다리지 않습니다.
 
001 :

나는 당신이 마우스를 클릭하는 곳에 칠면조를 배치하고 싶습니다.

다음 함수를 사용하여 표시기가 던진 지점의 좌표를 얻을 수 있습니다.

WindowXOnDropped()

창YonDropped()

가격 및 시간:

WindowPriceOnDropped()

WindowTimeOnDropped()

 
valeryk :

bool NewBar()
{정적 날짜/시간 뉴바;
부울 res=거짓;
if(newbar==0)newbar=시간[0];
if(newbar!=시간[0]){res=true;newbar=시간[0];}
반환(res);
}

새로운 바의 존재.


이것이 전문가가 귀하의 코드에 대해 말한 것입니다!

귀하의 버전에서 정적 datetime newbar가 0으로 초기화되지 않은 것은 잘못된 것입니다.

 
Sepulca :

그리고 다음과 같이 하는 것이 좋습니다(어드바이저가 다시 시작되는 경우).

IMHO - 주문을 검색하고 시장에서 마감되었는지, 어떻게 마감되었는지, 테이크, 스톱 또는 수동으로 확인하는 것이 좋습니다. 여기에서 다른 방향으로 춤을 춥니다.

그러면 모든 것이 확실히 완벽해질 것입니다. 그리고 전역 변수 가 손실 될 수 있습니다 ...