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

 
forexnew :
DLL로 작업한 적이 없습니다. 코드가 준비되어 있습니까?


나는 그러한 기능을 수행하지 않았지만, 보면 특별히 복잡한 것은 없습니다. 즉, 한 파일을 다른 파일로 어리석게 교체하는 것입니다.

DLL을 만들려면 MQL4가 아닌 다른 언어로 프로그래밍해야 합니다. 누군가 C/C++로 글을 씁니다. 델파이에서 했습니다. 일반적으로 편안한 사람.

DLL이 준비되면 MQL4 언어의 다른 라이브러리와 동일한 방식으로 Expert Advisor에 연결됩니다. 그런 다음 DLL에 설명된 함수를 안전하게 호출할 수 있습니다.

 
drknn :


나는 그러한 기능을 수행하지 않았지만, 보면 특별히 복잡한 것은 없습니다. 즉, 한 파일을 다른 파일로 어리석게 교체하는 것입니다.

파일 시스템에 링크를 만들어 스크립트에서 로그를 읽을 수 있습니다.
 

친애하는 Igor Kim에는 마지막 오픈 포지션 의 시가를 반환하는 기능이 있습니다 https://forum.mql4.com/ru/38949/page5#434239

어렵지 않다면 오픈 포지션의 시가를 반환하는 함수를 작성하세요. 연속으로 충분히 생각했다

t<OrderOpenTime()
"<"를 ">"로 바꾸지만 결과가 없습니다.
 

안녕하세요.

가능하다면 이 기능을 구현하는 방법을 알려주십시오.

주문 1이 접수되었으며 이에 따라 TP가 주문되었습니다. 주문과 병행 하여 보류 주문 2가 배치됩니다. TP 주문 1이 트리거될 때 보류 주문을 삭제하는 방법.

 
strongest :

안녕하세요.

가능하다면 이 기능을 구현하는 방법을 알려주십시오.

주문 1이 접수되었으며 이에 따라 TP가 주문되었습니다. 주문과 병행하여 Pending Order 2가 생성됩니다. TP order 1이 실행될 때 Pending 주문을 삭제하는 방법.


거래 함수 OrderDelete() 호출
 
후행 정지가 5자리 로 작동하려면 무엇을 변경해야 합니까? 점수를 10배 올려도 소용이 없습니다.
 //+------------------------------------------------------------------+
//|                                                   e-Trailing.mq4 |
//|                                           Ким Игорь В. aka KimIV |
//|                                              http://www.kimiv.ru |
//|                                                                  |
//| 12.09.2005 Автоматический Trailing Stop всех открытых позиций    |
//|            Вешать только на один график                          |
//| 21.01.2006 Параметр AllPositions                                 |
//+------------------------------------------------------------------+
#property copyright "Ким Игорь В. aka KimIV"
#property link       "http://www.kimiv.ru"

//------- Внешние параметры ------------------------------------------
extern bool    AllPositions   = False; // Управлять всеми позициями
extern bool    ProfitTrailing = True;   // Тралить только профит
extern int     TrailingStop   = 15 ;     // Фиксированный размер трала
extern int     TrailingStep   = 2 ;     // Шаг трала
extern bool    UseSound       = True;   // Использовать звуковой сигнал
extern string NameFileSound  = "expert.wav" ;   // Наименование звукового файла

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
void start() {
   for ( int i= 0 ; i< OrdersTotal (); i++) {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
       if (AllPositions || OrderSymbol ()== Symbol ()) {
        TrailingPositions();
      }
    }
  }
}

//+------------------------------------------------------------------+
//| Сопровождение позиции простым тралом                             |
//+------------------------------------------------------------------+
void TrailingPositions() {
   double pBid, pAsk, pp;

  pp = MarketInfo ( OrderSymbol (), MODE_POINT);
   if ( OrderType ()==OP_BUY) {
    pBid = MarketInfo ( OrderSymbol (), MODE_BID);
     if (!ProfitTrailing || (pBid- OrderOpenPrice ())>TrailingStop*pp) {
       if ( OrderStopLoss ()<pBid-(TrailingStop+TrailingStep- 1 )*pp) {
        ModifyStopLoss(pBid-TrailingStop*pp);
         return ;
      }
    }
  }
   if ( OrderType ()==OP_SELL) {
    pAsk = MarketInfo ( OrderSymbol (), MODE_ASK);
     if (!ProfitTrailing || OrderOpenPrice ()-pAsk>TrailingStop*pp) {
       if ( OrderStopLoss ()>pAsk+(TrailingStop+TrailingStep- 1 )*pp || OrderStopLoss ()== 0 ) {
        ModifyStopLoss(pAsk+TrailingStop*pp);
         return ;
      }
    }
  }
}

//+------------------------------------------------------------------+
//| Перенос уровня StopLoss                                          |
//| Параметры:                                                       |
//|   ldStopLoss - уровень StopLoss                                  |
//+------------------------------------------------------------------+
void ModifyStopLoss( double ldStopLoss) {
   bool fm;

  fm= OrderModify ( OrderTicket (), OrderOpenPrice (),ldStopLoss, OrderTakeProfit (), 0 , CLR_NONE );
   if (fm && UseSound) PlaySound (NameFileSound);
}
//+------------------------------------------------------------------+
 
david2 :
후행 정지가 5자리 숫자로 작동하려면 무엇을 변경해야 합니까? 10 rvz만큼 포인트를 증가시키는 것은 도움이 되지 않습니다.

대부분 - 문제는 비정규화된 가격에 있습니다.
 
PapaYozh :

대부분 - 문제는 비정규화된 가격에 있습니다.
죄송합니다. 터미널 버튼 외에 어드바이저가 거래할 수 있도록 어드바이저 창에서 추가 확인을 클릭해야 했습니다.
 
Sancho77 :

친애하는 Igor Kim에는 마지막 오픈 포지션의 시가를 반환하는 기능이 있습니다 https://forum.mql4.com/ru/38949/page5#434239

어렵지 않다면 오픈 포지션의 시가를 반환하는 함수를 작성하세요. 연속으로 충분히 생각했다

"<"를 ">"로 바꾸지만 결과가 없습니다.

해명해보는건 어떨까요? 열린(시장에서) 또는 이미 닫힌 첫 번째 항목을 선택하십시오. 그리고 3년 전에 첫 번째 자리가 열렸다면? 그녀가 선택 되어야 할까요 ?

일반적으로 이것이 전부인 이유는 무엇입니까?

 

안녕 동지들!

다음 사항을 알려주십시오. 이익실현으로 이전 주문이 정확하게 마감되었는지 확인할 수 있습니까? 그리고 그렇다면 프로그래밍 방식으로 구현하는 방법.

비슷한 질문이 이미 제기된 경우 링크를 보내주시면 감사하겠습니다.