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

 

열리는 두 개의 간단한 스크립트를 도와주세요.

손절매가 있는 매수 및 매도 주문을 보류 하고 주어진 금액에서 이익을 취합니다

현재 가격에서 멀어집니다. 어떻게 든 기적적으로 하나의 작업을 작성했습니다.

하지만 실수로 삭제했고 지금은 작동시키기 위해 무엇을 했는지 기억이 나지 않습니다.

당신이 유일한 희망입니다 ...

팔다:


정수 시작()
{
OrderSend(Symbol(),OP_SELLSTOP,0.01,Bid-20*Point,3,Bid+50*Point,Bid-50*Point);

리턴(0);
}


그리고 사다


정수 시작()

{
OrderSend(Symbol(),OP_BUYSTOP,0.01,Ask+20*Point,3,Bid+50*Point,Bid-50*Point);

리턴(0);
}

도와주세요, 제발...

 
NickXXX :

안녕하세요!

오늘은 시간을 들여 연습하고 있습니다.) 예를 들어, 표시기가 특정 시간에 무언가를 하도록 해야 합니다.

코드는 다음과 같습니다.

이제 조건이 21.30뿐만 아니라 22.00, 22.30, 23.00 등에도 해결되기를 원한다고 가정해 보겠습니다.

물론 다음과 같이 할 수 있습니다.

그러나 특히 제어 지점이 많은 경우 어떻게 든 비합리적 인 것 같습니다. 더 빠를 수 있다고 생각합니다.

문제는 더 쉽게(더 정확하게) 수행하는 방법입니다.)

여기서 모든 것은 임시 조건이 어떤 법의 적용을 받는지 여부, 패턴이 있는지 여부에 달려 있습니다. 예를 들어 귀하의 경우 30분마다: if ( TimeCurrent()%1800==0 ) {waste}. 이 시점에 논리가 없다면 - 당신의 선택입니다. 나만 맘에 안들고 엄밀히 따지면 이분에 틱이 없으면 EA가 그 조건을 건너뛰는데...
 
Figar0 :
여기서 모든 것은 임시 조건이 어떤 법의 적용을 받는지 여부, 패턴이 있는지 여부에 달려 있습니다. 예를 들어 귀하의 경우 30분마다: if (TimeCurrent()%1800==0) {waste}. 이 시점에 논리가 없다면 - 당신의 선택입니다. 나만 맘에 안들고 엄밀히 따지면 이분에 틱이 없으면 EA가 그 조건을 건너뛰는데...

저것들. 나눗셈의 나머지 부분을 확인합니다. 그러나이 경우에는 항상 나머지가있을 것 같습니다 ...

엄정한 평등에 전적으로 동의하는데, 아직까지는 생각하지 못했습니다. 원칙적으로 간격과 같은 작업을 수행할 수 있습니다(예: 16.00 - 16.03).

하지만 요점은 그가 30분에 한 번씩 계산을 하고 잠자리에 든다는 것이었다. 항상 불필요한 계산으로 시스템을 로드하지 않기 위해.

 
NickXXX :

저것들. 나눗셈의 나머지 부분을 확인합니다. 그러나이 경우에는 항상 나머지가있을 것 같습니다 ...


네, 맞습니다. 다음과 같이 하는 것이 좋습니다. if ( TimeCurrent()%1800 <60) {waste}.
 
Figar0 :

네, 맞습니다. 다음과 같이 하는 것이 좋습니다. if (TimeCurrent()%1800<60) {waste}.

< 0.6 또는 이와 유사한 것입니다. 나눗셈의 나머지 는 항상 1보다 작습니다. :)
 

그리고 결국 다음과 같은 많은 변수를 통해:

 double Time_Mes_1= 21.30 ;
double Time_Mes_2= 22.00 ;
double Time_Mes_3= 22.30 ;
...

정말 나쁜 건가요? 아니면 타고?

그리고 또 다른 작은 질문이 있습니다. 허용하면 조건을 충족하기 위해 간격(예: 16.00-16.03)을 설정하겠습니다. 새로운 틱이 도착했음에도 불구하고 한 번만 실행하도록 하는 방법???

 

1. datetime과 같은 데이터 유형 이 있습니다. 이국적인 것을 원한다면 int를 시간에 사용할 수 있지만 double은 이미 극단적입니다.

2. 페이지 5-10 뒤로 되감기: 원하는 작업을 수행하는 방법을 알려줍니다.

 

안녕하세요.

코드 수정을 도와주세요.

아래 두 줄 모두 버그가 있습니다.

미리 감사드립니다.

 if( ( OrderMagicNumber ()==MAGIC || OrderMagicNumber ()== 777 ))

if( ( OrderMagicNumber ()==(MAGIC || 777 ))

프로그램 자체:

 int OrdTicket_b()
 {
   string SMB= Symbol ();
   int OrdTicket;
   int MAGIC;
   int i;
   for (i= 0 ; i< OrdersHistoryTotal (); i++)
   {
     if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES) == true)
     {
       if ( OrderSymbol ()==SMB)
       {
         if ( OrderMagicNumber ()==MAGIC || OrderMagicNumber ()== 777 )
         {
           if ( OrderType ()==OP_BUY || OrderType ()==OP_SELL)
           {
            OrdTicket= OrderTicket ();
           }  
         }  
       }          
     }
   }
   return (OrdTicket);
 }
 
tara :
사람들을 비방하지 마십시오. 지루한 다른 곳으로 가십시오. 충분합니다 ...
 
tara :

1. datetime과 같은 데이터 유형이 있습니다. 이국적인 것을 원한다면 int를 시간에 사용할 수 있지만 double은 이미 극단적입니다.

2. 페이지 5-10 뒤로 되감기: 원하는 작업을 수행하는 방법을 알려줍니다.

1. 여기서 double은 분과 시간을 추가하는 데만 사용되었습니다. 제어점을 HH로 지정할 수 있습니다 . MM (예: 16.23) .

2. 마지막 페이지를 보니 물론 datetime에 대한 내용이 있긴 하지만 정확하지 않습니다. 그들은 단지 마지막 주문 시간인 HH.MM 형식으로 결론을 내 립니다.