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

 
MikeM :
TimeCurrent()와 같은 함수가 있습니다.
포지션을 열 때 이 함수의 값을 기억해야 하고, 새로운 포지션을 열고 싶다면 이 함수의 현재 값과 저장된 값의 차이를 확인해야 합니다.
원하는 것을 지정하십시오. 예를 들어 15분 / 4시간 / 10시간 17분과 같이 일정 시간이 경과한 후 새 위치를 열고 싶을 수도 있습니다. 그리고 38초?
 
이것은 내 욕망이 아닙니다. 이것은 12:08부터 귀하의 질문에 대한 답변입니다.
 
MikeM :
이것은 내 욕망이 아닙니다. 이것은 12:08부터 귀하의 질문에 대한 답변입니다.
확인. 게시물에서 "답변"을 클릭하십시오. 그렇지 않으면 이것이 내 질문에 대한 답변이라는 것을 깨닫지 못했습니다. 좋은 조언, 당신이 제안한대로 할 것입니다. 덕분에.
 
paladin80 :
확인. 게시물에서 "답변"을 클릭하십시오. 그렇지 않으면 이것이 내 질문에 대한 답변이라는 것을 깨닫지 못했습니다. 좋은 조언, 당신이 제안한대로 할 것입니다. 덕분에.

제가 알기로는 전문가 고문이 여러 명 있고 거래 주문 을 보내는 데 중복되는 사항이 없는 경우,

당신은 이것을 사용할 수 있습니다:

 if ( IsTradeContextBusy ()) Sleep ( 5000 ); //Торговый поток занят. Подождите 5 ceкунд

OrderSend() 전에 삽입;

 

더 좋은 점은 포지션을 여는 기능입니다 .

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 10.04.2008                                                     |
//|  Описание : Открывает позицию по рыночной цене.                            |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (NULL или "" - текущий символ)          |
//|    op - операция                                                           |
//|    ll - лот                                                                |
//|    sl - уровень стоп                                                       |
//|    tp - уровень тейк                                                       |
//|    mn - MagicNumber                                                        |
//|    co - комментарий                                                        |
//+----------------------------------------------------------------------------+
void OpenPosition( string sy, int op, double ll, double sl= 0 , double tp= 0 , int mn= 0 , string co= "" ) {
   color     clOpen;
   datetime ot;
   double    pp, pa, pb;
   int       dg, err, it, ticket= 0 ;

   if (sy== "" || sy== "0" ) sy= Symbol ();
   if (op==OP_BUY) clOpen=clOpenBuy; else clOpen=clOpenSell;
   if (co== "" ) co= WindowExpertName ()+ " " +GetNameTF( Period ());
   for (it= 1 ; it<=NumberOfTry; it++) {
     if (! IsTesting () && (! IsExpertEnabled () || IsStopped ())) {
       Print ( "OpenPosition(): Остановка работы функции" );
       break ;
    }
     while (! IsTradeAllowed ()) Sleep ( 5000 );
     RefreshRates ();
    dg= MarketInfo (sy, MODE_DIGITS);
    pa= MarketInfo (sy, MODE_ASK);
    pb= MarketInfo (sy, MODE_BID);
     if (op==OP_BUY) pp=pa; else pp=pb;
    pp= NormalizeDouble (pp, dg);
    ot= TimeCurrent ();
     if (MarketWatch)
      ticket= OrderSend (sy, op, ll, pp, Slippage, sl, tp, co, mn, 0 , clOpen);
     else
      ticket= OrderSend (sy, op, ll, pp, Slippage, sl, tp, co, mn, 0 , clOpen);
     if (ticket> 0 ) {
       if (UseSound) PlaySound (SoundSuccess); break ;
    } else {
      err= GetLastError ();
       if (UseSound) PlaySound (SoundError);
       if (pa== 0 && pb== 0 ) Message( "Проверьте в Обзоре рынка наличие символа " +sy);
       // Вывод сообщения об ошибке
       Print ( "Error(" ,err, ") opening position: " ,ErrorDescription(err), ", try " ,it);
       Print ( "Ask=" ,pa, " Bid=" ,pb, " sy=" ,sy, " ll=" ,ll, " op=" ,GetNameOP(op),
             " pp=" ,pp, " sl=" ,sl, " tp=" ,tp, " mn=" ,mn);
       // Блокировка работы советника
       if (err== 2 || err== 64 || err== 65 || err== 133 ) {
        gbDisabled=True; break ;
      }
       // Длительная пауза
       if (err== 4 || err== 131 || err== 132 ) {
         Sleep ( 1000 * 300 ); break ;
      }
       if (err== 128 || err== 142 || err== 143 ) {
         Sleep ( 1000 * 66.666 );
         if (ExistPositions(sy, op, mn, ot)) {
           if (UseSound) PlaySound (SoundSuccess); break ;
        }
      }
       if (err== 140 || err== 148 || err== 4110 || err== 4111 ) break ;
       if (err== 141 ) Sleep ( 1000 * 100 );
       if (err== 145 ) Sleep ( 1000 * 17 );
       if (err== 146 ) while ( IsTradeContextBusy ()) Sleep ( 1000 * 11 );
       if (err!= 135 ) Sleep ( 1000 * 7.7 );
    }
  }
   if (MarketWatch && ticket> 0 && (sl> 0 || tp> 0 )) {
     if ( OrderSelect (ticket, SELECT_BY_TICKET)) ModifyOrder(- 1 , sl, tp);
  }
}
 
좋은 하루! 트롤에 대한 질문입니다. 나는 25 포인트의 후행 정지를 설정했습니다. 나는 저녁에 일을 마치고 집에 왔지만 낮에는 가격이 70 포인트 갔지만 거래는 성사되지 않았습니다. 뭔가가 마음에 들지 않습니다 : 정류장이 아래로 이동하지 않아야 합니다.
 
demid61 :
좋은 하루! 트롤에 대한 질문입니다. 나는 25 포인트의 후행 정지를 설정했습니다. 나는 저녁에 일을 마치고 집에 왔지만 낮에는 가격이 70 포인트 갔지만 거래는 성사되지 않았습니다. 뭔가가 마음에 들지 않습니다 : 정류장이 아래로 움직이지 않아야 합니다.

코드는 어디에 있습니까? 코드 없이 - 여기.
 
demid61 :

좋은 하루! 트롤에 대한 질문입니다. 나는 25 포인트의 후행 정지를 설정했습니다.

아마도 "컴퓨터 끄기" 스타일의 작은 작품이 있을 것입니다.

 
sergeev :

아마도 "컴퓨터 끄기" 스타일의 작은 작품이 있을 것입니다.




:)) 나는 그것이 컴퓨터 없이 작동할 것이라고 생각했다
 
gawara :
안녕하세요 여러분, 여러분 ... 나는 오랫동안 구글링했지만 결코 구글링하지 않았습니다 ... 질문이 있습니다. html에 문이 있습니다. 명확성을 위해 그래프로 시각화해야합니다. 프로그래밍 포인트에서 나에게 보입니다. 이것이 가능합니다. 누가 비슷한 것을 발견했는지 알려주세요. ...이 작업을 수행하는 일종의 스크립트가 있어야하는 것 같습니다. 미리 감사드립니다 ...

https://www.mql5.com/ru/code/10425