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

 
모두 감사합니다. 모든 것이 제대로 작동했습니다! 이모티콘이 없는게 아쉽네요, 많이 가르쳐 드리고 싶어요 :)
 
oleg_felix : 트랜잭션이 이루어질 시간 간격을 설정하는 방법을 알려주세요. (하루의 시작 시간과 종료 시간)

여기를 보십시오: https://www.mql5.com/ru/forum/135030

 
도움이 되었습니다. 감사합니다. 해결했습니다!
 

다음 명령을 작성하는 방법을 알려주십시오.

- 주어진 이익 포인트 수만큼 무손실 주문 이전

 
oleg_felix :

다음 명령을 작성하는 방법을 알려주십시오.

- 오픈 주문을 하고 거래에서 일정 금액의 이익으로 손익분기점(스프레드 고려)으로 손절합니다.

같은 매직넘버로 주문을 모두 옮기는 기능이 있으니 한번 사용해 보세요


extern int     LevelWLoss        = 100;       // Уровень безубытка в пп
extern int     LevelProfit       = 300;       // Уровень профита в пп
//+----------------------------------------------------------------------------+
//|  Перенос стопа в безубыток                                                 |
//+----------------------------------------------------------------------------+
void MovingInWL( int Magic) {
   int i, k;
   string sym;
   double ord_open,ord_TP,ord_SL;
  
  k = OrdersTotal ()- 1 ;
  sym = Symbol ();
   for (i=k; i>= 0 ; i--) {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
       if ( OrderSymbol ()==sym && OrderMagicNumber ()==Magic) {
        ord_open = OrderOpenPrice ();
        ord_TP   = OrderTakeProfit ();
        ord_SL   = OrderStopLoss ();
         if ( OrderType ()==OP_BUY) {
           if ( NormalizeDouble (ord_SL, Digits )== NormalizeDouble ( 0 , Digits ) || 
               NormalizeDouble (ord_SL-ord_open, Digits )< NormalizeDouble (LevelWLoss* Point , Digits )) {
             if ( NormalizeDouble (Bid-ord_open, Digits )> NormalizeDouble (LevelProfit* Point , Digits )) {
               OrderModify ( OrderTicket (), ord_open, NormalizeDouble (ord_open+LevelWLoss* Point , Digits ), ord_TP, 0 , Yellow );
            }
          }
        }
         if ( OrderType ()==OP_SELL) {
           if ( NormalizeDouble (ord_SL, Digits )== NormalizeDouble ( 0 , Digits ) || 
               NormalizeDouble (ord_open-ord_SL, Digits )< NormalizeDouble (LevelWLoss* Point , Digits )) {
             if ( NormalizeDouble (ord_open-Ask, Digits )> NormalizeDouble (LevelProfit* Point , Digits )) {
               OrderModify ( OrderTicket (), ord_open, NormalizeDouble (ord_open-LevelWLoss* Point , Digits ), ord_TP, 0 , Yellow );
            }
          }
        }
      }
    }
  }
return ;
}
//_______________________________________________________________________
 

이고르엠


여기 내 조언자 코드가 있습니다: 손익분기점에 전달 함수를 어디에 삽입해야 합니까?

외부 int tp = 0;

외부 int sl = 0;

외부 intBeginHour = 0; // 시간 시작

외부 정수 EndHour = 0; // 시간 눈금

정수 시작()

{

//----

if ( OrdersTotal ()==0 && Hour () >= BeginHour && Hour () < EndHour && Close [1]< Open [1] && High [1]< Bid ) // 미결 주문이 있고 마지막 바의 종가가 시가보다 낮은지 확인합니다. 가격에 도달하면 구매를 위해 열림 매기다 현재 막대, 이전 막대의 높은 수준.

OrderSend(Symbol(),OP_BUY,1,Ask,0,Ask-sl*Point,Ask+tp*Point,"",777,0,Red);

if ( OrdersTotal ()==0 && Hour () >= BeginHour && Hour () < EndHour && Close [1]> Open [1] && Low [1]> Bid ) // 미결 주문이 있고 마지막 바의 종가가 시가보다 낮은지 확인합니다. 가격에 도달하면 구매를 위해 열림 매기다 현재 막대, 이전 막대의 높은 수준.

OrderSend(Symbol(),OP_SELL,1,Bid,0,Ask+sl*Point,Ask-tp*Point,"",777,0,Red);

//----

리턴(0);

}

 
oleg_felix :

여기 내 조언자 코드가 있습니다: 손익분기점에 전달 함수를 어디에 삽입해야 합니까?

이 단계에서는 코드 끝에 내 기능을 추가하고 코드에서 최소한 다음을 수행하는 것으로 충분할 것이라고 생각합니다.

if( OrdersTotal() >0) MovingInWL(777);

코드 시작 부분에 추가

외부 정수 레벨WLoss = 100; // pp의 손익분기점
extern int LevelProfit = 300; // pp의 이익 수준

그러나 나는 당신이 스스로 문제를 해결할 것인지 의심합니다. :)

 
DmitriyN :
할 수 있다. 집에 있는 동안 직장 에 설치된 컴퓨터에서 계정을 관리하거나 그 반대로도 가능합니다.
고맙습니다.
 

나는 다른 사람의 기능을 리메이크하려고 시도했고 "조금" 현명해졌습니다. 여기에 코드가 있습니다.

string FileName = test.txt;

int FileHandle=FileOpen(FileName,FILE_READ);
  if (FileHandle < 0)
     {
       Print("Файл не найден.");
     }
  
  string strInfo;
  int i;
  if (FileHandle>0)
     {
     while (i<20)
        {
          if (FileHandle == 1)
            {
            string strInfo1=FileReadString(FileHandle);
            }else{
                 if (FileHandle == 2)
                    {
                    string strInfo2=FileReadString(FileHandle);
                    }else{
                         if (FileHandle == 3)
                              {
                            string strInfo3=FileReadString(FileHandle);
                              }else{
                                   if (FileHandle == 4)
                                       {
                                       string strInfo4=FileReadString(FileHandle);
                                       }else{
                                            if (FileHandle == 5)
                                               {
                                               string strInfo5=FileReadString(FileHandle);
                                               }else{
                                                    if (FileHandle == 6)
                                                       {
                                                       string strInfo6=FileReadString(FileHandle);
                                                       }else{
                                                            if (FileHandle == 7)                                                            
                                                               {
                                                               string strInfo7=FileReadString(FileHandle);
                                                               }else{
                                                                    if (FileHandle == 8)                                                                    
                                                                        {
                                                                        string strInfo8=FileReadString(FileHandle);
                                                                        }else{
                                                                             if (FileHandle == 9)
                                                                                 {
                                                                                 string strInfo9=FileReadString(FileHandle);
                                                                                 }else{
                                                                                      if (FileHandle == 10)
                                                                                         {
                                                                                         string strInfo10=FileReadString(FileHandle);
                                                                                         }else{
                                                                                              Print("Ошибка! В файле должно быть не более 10 записей!");
                                                                                              }
                                                                                      }
                                                                             }
                                                                    }
                                                            }
                                                    }
                                            }
                              
                                   }
                          }
                   
                               
             
          }
          if (StrToInteger(strInfo1)==12345||StrToInteger(strInfo2)==12345||
              StrToInteger(strInfo3)==12345||StrToInteger(strInfo4)==12345||
              StrToInteger(strInfo5)==12345||StrToInteger(strInfo6)==12345||
              StrToInteger(strInfo7)==12345||StrToInteger(strInfo8)==12345||
              StrToInteger(strInfo9)==12345||StrToInteger(strInfo10)==12345)
          {
          isNumInFile = TRUE;
          }

        if (FileIsEnding(FileHandle) && isNumInFile == FALSE)
           {
           Print("Достигнут конец файла, искомое значение не найдено");
           break;
           }
        i++;

        if (i>100) break;
        }
     FileClose(FileHandle);
     }

test.txt 파일의 처음 10줄에서 특정 값을 찾기를 원했는데, 줄 수가 10보다 크면 "오류! 파일에 10개 이하의 항목이 있어야 합니다. !", 하지만 어떤 이유에서인지 여전히 모든 항목에 적용됩니다. 수정하도록 도와주세요. 가능하면 코드를 단순화하고 별도의 기능으로 정리하십시오.

 

사람들이여, 접근 가능한 형식으로 누군가 에게 참조로 매개변수를 전달 하는 것이 무엇인지 설명하십시오. 설명서를 읽어봤는데 거기서서야 이게 가능하다는 걸 알게 되었고, 변수를 식별한 후에는 & 수식어를 넣어야 한다는 것을 깨달았습니다. 설명이 설명이 포함된 작은 프로그램과 함께 제공되면 좋을 것입니다... 참조로 매개변수를 전달하는 것과 매개변수를 전달하는 것의 일반적인 차이점은 무엇입니까?