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

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

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

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

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

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

 
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 ;
}
//_______________________________________________________________________
[Deleted]  

이고르엠


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

외부 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 :
할 수 있다. 집에 있는 동안 직장 에 설치된 컴퓨터에서 계정을 관리하거나 그 반대로도 가능합니다.
고맙습니다.
[Deleted]  

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

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개 이하의 항목이 있어야 합니다. !", 하지만 어떤 이유에서인지 여전히 모든 항목에 적용됩니다. 수정하도록 도와주세요. 가능하면 코드를 단순화하고 별도의 기능으로 정리하십시오.

[Deleted]  

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