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

 
Top2n :
조차 따라잡지 못했다.

깃발에 대해 알아보십시오.
 
어느 나라) 어떤 깃발인지 적어주세요. 검색 엔진으로 운전하고 친해지는 열쇠.
 
거짓 사실에 대해 이야기하는 경우 정확히 하나의 주문을 열 수 있는 방법을 이해하지 못합니다.
 
말해봐, 고문이 주문 그리드를 엽니 다. 가장 높은 가격과 가장 낮은 가격으로 순서를 결정하는 함수를 작성했습니다. 그러나 가장 낮은 가격 또는 가장 높은 가격의 두 번째 주문에 대한 추가 정보가 필요합니다. 여기서는 일반적으로 2번째이며 극단적이지는 않습니다. 기능을 알려주세요.
 
Top2n :
거짓 사실에 대해 이야기하는 경우 정확히 하나의 주문을 열 수 있는 방법을 이해하지 못합니다.
그리고 "신호에서 열어야 하는 유형 의 열린 위치 가 이미 있습니까?"를 확인하지 않으시겠습니까?...
이미 존재하는 경우 열지 마십시오.

시장에 이러한 유형의 위치가 없으면 엽니다.

음, 이 확인과 함께 다른 조건도 확인할 수 있습니다. 예: 그러한 위치가 이미 존재하지만 해당 위치가 열린 이후 지정된 시간이 경과한 경우 다른 위치를 열 수 있습니다... 등. 등. ...

 
DimaMA :
말해봐, 고문이 주문 그리드를 엽니 다. 가장 높은 가격과 가장 낮은 가격으로 순서를 결정하는 함수를 작성했습니다. 그러나 가장 낮은 가격 또는 가장 높은 가격의 두 번째 주문에 대한 추가 정보가 필요합니다. 여기서는 일반적으로 2번째이며 극단적이지는 않습니다. 기능을 알려주세요.

모든 주문을 반복하고 2차원 배열에 저장합니다. 배열의 첫 번째 차원에 주문 배치 시간을 입력하고 두 번째 차원에 해당 티켓을 입력합니다. 주문 배치 날짜(첫 번째 차원 기준)를 기준으로 배열을 내림차순으로 정렬합니다. 첫 번째 차원에 있는 배열의 두 번째 요소는 끝에서 두 번째로 주문한 날짜를 저장하고 두 번째 차원에는 필요한 주문의 티켓이 있습니다. 이 티켓의 주문을 선택하고... 원하는 대로 하세요.


어떻게 해서 커스텀 어드바이저의 마지막 포지션의 N번째 손익분기점을 계산하는 함수를 작성했습니다. 계산은 끝에서 두 번째 위치부터 시작하여 마지막 몇 위치에 대해 수행되어야 했습니다. 당신은 그것이 어떻게 구성되어 있는지와 거기에서 스레드를 찢어내는 것을 볼 수 있습니다:

 //+----------------------------------------------------------------------------+
// Уровень безубытка по символу для N последних позиций, начиная с предпоследней
double LevelPreWLforNpos( int op, int mn1, int mn2, int num) { 
   double lots= 0 ;
   double sum= 0 ;
   int n= 0 ;
   int mass[ 1 ][ 2 ];
   ArrayInitialize (mass, 0 );
   for ( int i= 0 ; i< OrdersTotal (); i++) {
       if ( OrderSelect (i,SELECT_BY_POS)) {
         if ( OrderSymbol ()!=sy)   continue ;
         if ( OrderType ()!=op)     continue ;
         if ( OrderMagicNumber ()==mn1 || ( OrderMagicNumber ()==mn2 || OrderMagicNumber ()< 0 )) {
            n++;
             if (n> ArrayRange (mass, 0 )) ArrayResize (mass, n);
            mass[n- 1 ][ 0 ]= OrderOpenTime ();
            mass[n- 1 ][ 1 ]= OrderTicket ();
            }
         }
      }
   ArraySort (mass, WHOLE_ARRAY , 0 ,MODE_DESCEND);
   if ( ArrayRange (mass, 0 )>num+ 1 )   ArrayResize (mass,num+ 1 );
   for (i= 1 ; i< ArrayRange (mass, 0 ); i++) {
       if ( OrderSelect (mass[i][ 1 ],SELECT_BY_TICKET)) {
         if ( OrderCloseTime ()== 0 ) {
             if ( OrderType ()==OP_BUY) {
               lots+= OrderLots ();
               sum+= OrderLots ()* OrderOpenPrice ();
               }
             if ( OrderType ()==OP_SELL) {
               lots-= OrderLots ();
               sum-= OrderLots ()* OrderOpenPrice ();
               }
            }
         }
      }   
   double price= 0 ;
   if (lots!= 0 ) price=sum/lots;  
   return ( NormalizeDouble (price,dg));
}
//+----------------------------------------------------------------------------+
 
Top2n :
거짓 사실에 대해 이야기하는 경우 정확히 하나의 주문을 열 수 있는 방법을 이해하지 못합니다.


네. 나는 그들에 대해 이야기하고 있습니다. 여기에서 튜토리얼을 참조하십시오. 다음과 같은 몇 가지 다른 조건이 있을 것입니다. "주의, 질문!) 그리고 (sig1)에 대해 한 번 열리도록 하는 방법, 이 sig1-open BAY, 다음 명령인 sig0-다음 명령과 같을 수 있습니다. .트롤(상관없음), 다음 명령을 다시 실행, sig1-두 번째 BAY를 엽니다." 그런 경우가 많지 않습니까? 당신은 그것을 필요로하지 않는 것 같습니다 ... 일반적으로 깃발을 가지고 노십시오.

 
Roman. :


네. 나는 그들에 대해 이야기하고 있습니다. 여기에서 튜토리얼을 참조하십시오. 다음과 같은 몇 가지 다른 조건이 있을 것입니다. "주의, 질문!) 그리고 (sig1)에 대해 한 번 열리도록 하는 방법, 이 sig1-open BAY, 다음 명령인 sig0-다음 명령과 같을 수 있습니다. . 트롤(상관 없음), 다음 명령을 다시 실행, sig1 - 두 번째 BAY를 엽니다." 그런 경우가 많지 않습니까? 당신은 그것을 필요로하지 않는 것 같습니다 ... 일반적으로 깃발을 가지고 노십시오.

Kimi는 무작위로 적합한 기능이 없나요? 프로그램이 막히지 않도록. 그는 주문을 열고 진정해야합니다. 그렇지 않으면 1 초 안에 "천"이됩니다. 열립니다
 
Top2n :
그리고 김 I.V. 무작위로 적합한 기능이 없습니까? 프로그램이 막히지 않도록. 그는 주문을 열고 진정해야합니다. 그렇지 않으면 1 초 안에 "천"이됩니다. 열립니다
선택하다.
 

테스트 후 테스트 결과(트랜잭션)를 파일에 쓰고 싶습니다.

deinit() 블록에 tofile() 함수(작업이 끝난 후의 기록)를 넣었습니다.

그리고 여기에 기능 자체가 있습니다

 // Запись профитов в файл
void toFile( )
{
int handle= FileOpen ( "OrdersReport.csv" , FILE_WRITE | FILE_CSV , "\t" );
   if (handle< 0 ) return ( 0 );
   // запишем заголовок в файл
   FileWrite (handle, "#" , "проф" );
 
   int total= OrdersTotal ();
   // записываем в файл только закрытые ордера
   for ( int pos= 0 ;pos<total- 1 ;pos++)
    {
     //FileSeek(handle, 0, SEEK_END);
     if ( OrderSelect (pos,SELECT_BY_POS, MODE_HISTORY)==false) continue ;
     FileWrite (handle, OrderTicket (), OrderProfit ());
    }
   FileClose (handle);
   return ;
작동하지 않고 제목만 씁니다.