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

 
pigvin :

문제는 다음과 같습니다. 고문은 지속적으로 주문을 다시 엽니다. 구매 신호가 있습니다. 그는 주문을 연 다음 이익으로 닫고 조건은 여전히 보존되며 다시 엽니 다. 다른 신호 후에만 열리는 것이 필요합니다.

일반적인 구매 및 정산 카운터의 도움으로 제거 할 수 있다고 생각했습니다 - 구매 주문이 카운터 +1을 열었고 카운터가 0보다 큰 동안 새 구매를 열 수 없으면 카운터는 재설정 만 해결된 후. 하지만 왜 작동하지 않는지 이유를 알 수 없습니다??? 논리 좀 봐, 내가 어딘가에 잘못된거야?? mql 미터는 정확히 비슷한 문제에 직면했습니다.

저것들. 마지막 막대에 신호가 있지만 이미 사용 되었습니까?

이렇게 될 수 있을까

 datetime save_time; 
int tf= 0 ;
старт
...
if (total< 1 ) //проверка количества ордеров 
   {
         if (save_time!= iTime ( 0 ,tf, iBarShift ( 0 ,tf,Time[ 0 ])))
            save_time = iTime ( 0 ,tf, iBarShift ( 0 ,tf,Time[ 0 ]));
         else return ;


  ...
 if (ticket> 0 )
                      {
                         if ( OrderSelect (ticket,SELECT_BY_TICKET,MODE_TRADES)) Print ( "открыта позиция BUY : " , OrderOpenPrice ());
      
                         else Print ( "Ошибка при открытии BUY позиции : " , GetLastError ()); 
                        } else { save_time = 0 ;} // так как ошибка запретим ретурн (см. выше)
 
Operr :

이렇게 시도

 if ( OrderOpenTime ()+ 2 * 1440 * 60   > Time[ 0 ])   //т.е. последнее время текушего графика а не локальное

어쨌든 작동해야합니다.

저에게는 훨씬 더 명확합니다.

 if (Time[ 0 ]- OrderOpenTime () >= 2 * 1440 * 60 )   
 

여러분, 안녕하세요!

주제를 벗어난 것에 대해 죄송합니다. 주제가 수요가 많아서 여기에 글을 쓰고 있습니다. 알려주실 수 있습니까? 중독된.

기본 연산(+-*/%)만 사용하여 실수를 지수화(실수 포함)하는 방법은 무엇입니까? 예를 들어, Windows 계산기에서 1.2를 1.2로 제곱하면 결과는 1.2445647472039777218169154111826이 됩니다. 알고리즘에 관심이 있으면 언어는 중요하지 않습니다. 제가 직접 번역하겠습니다.

추신. 내가 해보지 않은 프로그래밍 테스트가 얼마나 많은데 누군가에게는 사소한 일일 수 있지만 그런 작업은 처음 봐요.

 

좋은 오후에요 여러분!

많은 포럼과 Google 기사를 검색했지만 답을 찾지 못했습니다

나는 M1에서 두 개의 반대 주문에 대한 거래를 위해 고문을 쓰기 로 결정했습니다.

아이디어는 간단합니다. 두 개의 반대 주문이 작은 TP로 배치되고 그 중 하나의 TP가 트리거되면 막대 수(5라고 가정해 봅시다)의 형태로 두 번째 타이머가 켜집니다. 본질적으로 임시 SL이어야 합니다. 계산에 따르면 통화가 같은 방향으로 움직이면 두 번째 주문에서 임시 SL이 발동된 후 손실이 최소화되지만 차트가 반전되면 두 위치에서 흑자가 됩니다. 사용, 하루에도 열려있는 주문의 수는 엄청납니다 - 그것이 내기입니다.

문제 는 " 그 중 하나의 TR이 트리거되면 막대 수의 형태로 타이머가 두 번째로 켜집니다 "라는 코드를 작성하는 방법을 모른다는 것입니다.

현재는 2개 주문의 타이머만 동시에 작동하지만 아무 소용이 없습니다.

추신: 한 달 동안 이 문제를 해결할 수 없습니다. 조언이나 코드로 도움을 주세요. :)

여기 어드바이저 코드가 있습니다

extern int SL=100;

extern int TP=100;

extern double StartLot=0.1;

extern double StopLot=1.0;

extern int bar_time=20;


double Lot()

{

double lt;

if(OrdersHistoryTotal()==0) return (StartLot);

if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))

{

if(OrderProfit()<0)

{

lt=OrderLots()*2;

if(lt>StopLot) return (StartLot);

else return (lt);

}

else

return (StartLot);

}

else

return (StartLot);

}

int start()

{

double lot;

if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False)

{

int order;

{

lot=Lot();

order=OrderSend(Symbol(),OP_BUY,lot,Ask,0,Ask-SL*Point,Ask+TP*Point,0,0,0,Green);

order=OrderSend(Symbol(),OP_SELL,lot,Bid,0,Bid+SL*Point,Bid-TP*Point,0,0,0,Green);

}

}

// вот здесь должно быть что-то что является решением проблемы и связующим звеном

{

int bars = iBarShift( Symbol(), PERIOD_M1, OrderOpenTime() ) ;

if ( iTime( Symbol(), PERIOD_M1, bars ) > OrderOpenTime() ) { bars ++; }

if ( bars >= bar_time )

OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),5,White);

}

return(0);

}


미리 감사합니다

 
하나의 바가 아닙니다! 그러나 원칙적으로 이러한 추세에서는 시장의 반전이나 무도타에 대한 신호가 있을 때까지 더 이상 개장할 필요가 없습니다!
costy_ :

저것들. 마지막 막대에 신호가 있지만 이미 사용 되었습니까?

이렇게 될 수 있을까

 
snail09 :

여러분, 안녕하세요!

주제를 벗어난 것에 대해 죄송합니다. 주제가 수요가 많아서 여기에 글을 쓰고 있습니다. 알려주실 수 있습니까? 중독된.

기본 연산(+-*/%)만 사용하여 실수를 지수화(실수 포함)하는 방법은 무엇입니까? 예를 들어, Windows 계산기에서 1.2를 1.2로 제곱하면 결과는 1.2445647472039777218169154111826이 됩니다. 알고리즘에 관심이 있으면 언어는 중요하지 않습니다. 제가 직접 번역하겠습니다.

추신. 내가 해보지 않은 프로그래밍 테스트가 얼마나 많은데 누군가에게는 사소한 일일 수 있지만 그런 작업은 처음 봐요.

https://docs.mql4.com/ru/math/MathPow 그렇지 않습니까? 또는 기본 작업이 문제의 조건입니다. 그런 다음 http://bpascal.ru/download/desc/436.php 옵션을 선택하면 핸드브레이크에서 모든 작업을 실제로 수행한 다음 지수와 로그를 고유한 기능으로 구현합니다.

 
индикатор costy_ :

while(i>=0)을 사용합니다. 즉, 새 촛대가 나타날 때 i=1입니다(물론 이전 촛대의 데이터는 고정 데이터에 따라 한 번 계산됨).

some_time=D'1971.01.11 00:00'을 입력합니까? Bars를 사용하면 IndicatorCounted가 버그가 아닙니다(오류는 아마도 이 first_t_bar 때문일 것입니다) .

귀하의 알고리즘과 귀하가 처리합니다.

" 저는 프로그래밍에 익숙하지 않습니다. " 2007년부터)).


어쨌든 내 디자인이 잘 작동하는 이유는 분명하지 않지만 표준 디자인은 그렇지 않습니다. some_time=D'1971.01.11 00:00'; 여기서는 시작 시 한 번 사용됩니다. 그런 다음 날짜가 다른 날짜로 변경되지만 이것은 여기에 있으며 아무 관련이 없습니다. 한 경우에는 작동하고 다른 경우에는 작동하지 않습니다. 나중에 지표를 다시 하겠습니다. 이것은 다른 지표의 수정된 버전입니다. 답변 해주셔서 감사합니다!

 
Sonne :

좋은 오후에요 여러분!

많은 포럼과 Google 기사를 검색했지만 답을 찾지 못했습니다

나는 M1에서 두 개의 반대 주문에 대한 거래를 위해 고문을 쓰기로 결정했습니다.

아이디어는 간단합니다. 두 개의 반대 주문이 작은 TP로 배치되고 그 중 하나의 TP가 트리거되면 막대 수(5라고 가정해 봅시다)의 형태로 두 번째 타이머가 켜집니다. 본질적으로 임시 SL이어야 합니다. 계산에 따르면 통화가 같은 방향으로 움직이면 두 번째 주문에서 임시 SL이 발동된 후 손실이 최소화되지만 차트가 반전되면 두 위치에서 흑자가 됩니다. 사용, 하루에도 열려있는 주문의 수는 엄청납니다 - 그것이 내기입니다.

문제 는 " 그 중 하나의 TR이 트리거되면 막대 수의 형태로 타이머가 두 번째로 켜집니다 "라는 코드를 작성하는 방법을 모른다는 것입니다.

현재는 2개 주문의 타이머만 동시에 작동하지만 아무 소용이 없습니다.

추신: 한 달 동안 이 문제를 해결할 수 없습니다. 조언이나 코드로 도움을 주세요. :)

여기 어드바이저 코드가 있습니다

..................................................................

미리 감사합니다

1. 클로즈드 테이크 포지션이 있는 경우, ...

1.1 유형이 OP_BUY인 경우 ...

1.1.2 OP_SELL 포지션이 열려 있으면 ...

1.1.3 현재 막대의 시간에서 매도 포지션을 여는 막대의 시간을 뺀 시간이 지연 막대의 수 이상인 경우 ...

1.1.4. 매도 포지션 청산

1.2 유형이 OP_SELL인 경우 ...

1.2.2 오픈 포지션 OP_BUY가 있는 경우 ...

1.2.3 현재 막대의 시간에서 매수 위치를 여는 막대의 시간을 뺀 시간이 지연 막대의 수보다 크거나 같으면 ...

1.2.4. 매수 포지션 닫기

 
안녕하세요, 노멀 히스토리(홀 없는)는 어디서 구하는지, MT5의 분 히스토리는 MT4에 맞는지 알려주세요.
 

모두 좋은 저녁 되세요, 먼저 어리석은 질문에 대해 사과드립니다)

변수가 있는 Expert Advisor에서 "A"라고 하면 현재 가격 값이 할당되어 거래됩니다. 이 값을 임의의 과거 값으로 변경하고, 한 달 전의 임의의 값을 취하여, 이력을 분석하여 원하는 값을 표시해 봅시다. 전략 테스터 에서 해보긴 했는데 그 정확성에 의문이 많다. 아니면 어레이를 다시 실행하고 작업해야 합니까!? 모두에게 감사합니다.

ps 알고싶습니다 왜냐하면 MQL 참고서와 교과서에서 찾지 못했습니다.