여기서 Δ는 차이를 의미합니다. Close[i]는 Open[i]이고 ^는 지수 기호입니다. const - 주어진 표현식의 상수, 즉i_sizeOfSequentialCorrectionBar * pt, 표준 수학 표기법은 아무 것도 발명하지 않았습니다. 2*bVar-1은±1 과 유사합니다. 여기서 bVar는 모든 bool 변수입니다. 그리고 표현식 2*bVar-1은 0과 1이 아니라 -1과 +1의 값을 취합니다. ≥는 표준 수학 표기법이기도 한 MQL4 >=입니다.단계 - 단계, 즉. cnt++에서 보폭은 1이고 cnt=0에서 보폭은 -cnt입니다. 표기법에서 명확하지 않은 것은 무엇입니까?
gyfto, 설명 감사합니다. 그러나 순간이 있습니다. 어쨌든 식의 출력 부호를 한 번만 변경해도 문제가 해결되지 않습니다. 결국 제로화가 발생하는 순간 시가와 종가를 "교환"해야 합니다. 저것들. 여기서 내가 이해하는 바에 따르면 특별한 보편성은 달성될 수 없습니다. 이것이 바로 내가 생각했던 것입니다.
Vadim 은 얼마 전에 함수 루프에 넣으면 속도 면에서 코드 실행 속도가 몇 배나 느려진다고 썼습니다. 이것이 함수가 루프의 각 반복에서 값을 계산하는 경우에만 적용되는지 아니면 일반적으로 어떤 것에 적용되는지 궁금합니다. 예를 들어, 아직 Expert Advisor를 추가하지 않았지만 gyfto가다음과 같이 단순화하려고 했던 기능을 다시 작성했습니다.
//+-------------------------------------------------------------------------------------+//| Расчитываем количество идущих один за одним баров одного признака |//+-------------------------------------------------------------------------------------+int LastCandlesType( int directionMA)
{
int cntUp, // Счётчик идущих друг за другом свечей с..
cntDn; // .. требуемыми признакамиfor ( int i=i_AnyBarsToHistory; i>= 1 ; i--)
{
if (directionMA == CROSS_UP)
{
if ((Open[i] - Close[i]) >= i_sizeOfSequentialCorrectionBar * pt) // Если бар соответствует требуемым признакам..
cntDn++; // .. прибавим 1 к счётчикуif ((Close[i] - Open[i]) >= i_sizeOfTrandBar * pt) // Если бар, не соответствует основному признаку..
cntDn = 0 ; // .. счётчик обнуляемif (cntDn == i_sequentBarsСount) // Если cnt баров в подряд медвежьи..return (REQUIRED_SEQUENTIAL_BEARS_GOT); // .. Выходим из функции
}
if (directionMA == CROSS_DN)
{
if ((Close[i] - Open[i]) >= i_sizeOfSequentialCorrectionBar * pt) // Если бар соответствует требуемым признакам..
cntUp++; // .. прибавим 1 к счётчикуif ((Open[i] - Close[i]) >= i_sizeOfTrandBar * pt) // Если бар, не соответствует основному признаку..
cntUp = 0 ; // .. счётчик обнуляемif (cntUp == i_sequentBarsСount) // Если cnt баров в подряд бычьи..return (REQUIRED_SEQUENTIAL_BULLS_GOT); // .. Выходим из функции
}
}
}
카운터 cntUp 및 cntDn 을 다르게 만들었습니다. 계산된 막대의 주기에 계산이 있는 경우 directionMA 는 즉시 하나의 값을 가질 수 있고 다른 값을 가질 수 있습니다. 그리고 카운터는 한 값을 합산하고 다른 값을 계속 합산할 수 있습니다. 그리고 변수가 하나만 있는 경우 한 속성 의 막대 수가 다른 속성의 막대 카운터에 추가됩니다.
여기에 조언이 필요합니다. 어떻게 든 다르게 작성하는 것이 더 낫습니까?
문제는 그 전문가가 크지 않다는 것입니다. 자동차와 이 기능이 있습니다. 그리고 긴 대신 올빼미가 팔고 그 반대도 마찬가지입니다. 나는 이것이 어떻게 될 수 있는지 이해하려고 노력하고 있습니다. 여기에 일종의 잼이 있는 것은 아닐까?
안녕하세요, 저는 mql4에 익숙해지기 시작했고 수익성이 없는 주문을 잠그는 스크립트를 작성했습니다. 한 가지 문제를 해결할 수 없습니다. 스크립트는 손실이 -10인 모든 주문을 잠그지만 가격이 -10 미만인 한 계속 잠급니다. 잠금이 한 번 발생하도록 하는 방법은 무엇입니까? 저것들. 주문이 -10의 손실에 도달하면 스크립트가 차단한 다음 손실이 계속 증가하더라도 이 주문을 건드리지 않습니다.
최적화에 대해 질문이 있습니다. EMA 알고리즘 이해하기. 아시다시피, 실제로 시간을 보내는 재귀가 있습니다. 원래 코드 에 따르면:
EMA가 생성하는 가중치를 처리하기 위해 특별히 matcad를 사용했습니다.
그건 그렇고, 이제 EMA를 사용하는 지표(지수라기보다 멱법칙이라고 하는 것이 더 정확할 것입니다)가 14와 같은 기간을 사용하는 이유가 명확해졌습니다. 마지막 가중치가 너무 높은데 다음 가중치가 이전 가중치보다 더 중요하다면 파워 함수를 그냥 감쌀 수 있다면? 재귀 종료 후의 최종 가중치가 공식으로 도출될 수 있다면 왜 재귀를 사용하는지 더 이상 묻지 않습니다(F(n,x) 및 y(n,x) 참조).
아니면 단순화하자
여기서 Δ는 차이를 의미합니다. Close[i]는 Open[i]이고 ^는 지수 기호입니다. const - 주어진 표현식의 상수, 즉 i_sizeOfSequentialCorrectionBar * pt, 표준 수학 표기법은 아무 것도 발명하지 않았습니다. 2*bVar-1은 ±1 과 유사합니다. 여기서 bVar는 모든 bool 변수입니다. 그리고 표현식 2*bVar-1은 0과 1이 아니라 -1과 +1의 값을 취합니다. ≥는 표준 수학 표기법이기도 한 MQL4 >=입니다. 단계 - 단계, 즉. cnt++에서 보폭은 1이고 cnt=0에서 보폭은 -cnt입니다. 표기법에서 명확하지 않은 것은 무엇입니까?
gyfto , 설명 감사합니다. 그러나 순간이 있습니다. 어쨌든 식의 출력 부호를 한 번만 변경해도 문제가 해결되지 않습니다. 결국 제로화가 발생하는 순간 시가와 종가를 "교환"해야 합니다. 저것들. 여기서 내가 이해하는 바에 따르면 특별한 보편성은 달성될 수 없습니다. 이것이 바로 내가 생각했던 것입니다.
Vadim 은 얼마 전에 함수 루프에 넣으면 속도 면에서 코드 실행 속도가 몇 배나 느려진다고 썼습니다. 이것이 함수가 루프의 각 반복에서 값을 계산하는 경우에만 적용되는지 아니면 일반적으로 어떤 것에 적용되는지 궁금합니다. 예를 들어, 아직 Expert Advisor를 추가하지 않았지만 gyfto가 다음과 같이 단순화하려고 했던 기능을 다시 작성했습니다.
카운터 cntUp 및 cntDn 을 다르게 만들었습니다. 계산된 막대의 주기에 계산이 있는 경우 directionMA 는 즉시 하나의 값을 가질 수 있고 다른 값을 가질 수 있습니다. 그리고 카운터는 한 값을 합산하고 다른 값을 계속 합산할 수 있습니다. 그리고 변수가 하나만 있는 경우 한 속성 의 막대 수가 다른 속성의 막대 카운터에 추가됩니다.
여기에 조언이 필요합니다. 어떻게 든 다르게 작성하는 것이 더 낫습니까?
문제는 그 전문가가 크지 않다는 것입니다. 자동차와 이 기능이 있습니다. 그리고 긴 대신 올빼미가 팔고 그 반대도 마찬가지입니다. 나는 이것이 어떻게 될 수 있는지 이해하려고 노력하고 있습니다. 여기에 일종의 잼이 있는 것은 아닐까?
안녕하세요, 저는 mql4에 익숙해지기 시작했고 수익성이 없는 주문을 잠그는 스크립트를 작성했습니다. 한 가지 문제를 해결할 수 없습니다. 스크립트는 손실이 -10인 모든 주문을 잠그지만 가격이 -10 미만인 한 계속 잠급니다. 잠금이 한 번 발생하도록 하는 방법은 무엇입니까? 저것들. 주문이 -10의 손실에 도달하면 스크립트가 차단한 다음 손실이 계속 증가하더라도 이 주문을 건드리지 않습니다.
외부 이중 정지 손실 = 150;
extern 더블 이익=-10;
//+----------------------------------------------- --------------------+
//----
무효 시작()
{
이중 이익 = 이익;
이중 로트=0;
for(int i=0;i<OrdersTotal();i++)
{
if(! OrderSelect (i,SELECT_BY_POS))
계속하다;
if(OrderType()==OP_BUY && OrderProfit()<이익*포인트)
랏+=OrderLots();
if(OrderType()==OP_SELL && OrderProfit()<이익*포인트)
많은-=OrderLots();
}
if(많은>0)
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,0,NULL,Red);
if(많은 <0)
OrderSend(Symbol(),OP_BUY,-(Lots),Ask,3,Bid-StopLoss*Point,0,NULL,Blue);
//----
리턴(0);
}
안녕하세요.
코드를 봐주세요. 트랜잭션의 평균 시간을 계산하고 싶습니다( 보류 주문으로 거래)
주문이 시작된 순간부터 마감까지.
안녕하세요.
코드를 봐주세요 트랜잭션의 평균 시간을 계산하고 싶습니다(보류 주문으로 거래)
주문이 시작된 순간부터 마감까지.
그리고 사이클의 평균 시간을 계산하는 이유는 무엇입니까? 추가 작업. 주기 후에 나중에 더 나을 수도 있습니다. 예, 계산 기간을 설정하는 것이 좋습니다.
그리고 사이클의 평균 시간을 계산하는 이유는 무엇입니까? 추가 작업. 주기 후에 나중에 더 나을 수도 있습니다. 예, 계산 기간을 설정하는 것이 좋습니다.
주기에서 제거되었습니다. 계산 기간은 어떻게 되나요?
예를 들어 외부 변수
이해했어 어떻게든 데이트를 해야겠어
이게 무슨 기능이야
이해했어 어떻게든 데이트를 해야겠어
이게 무슨 기능이야
extern이 있으면 왜 복잡합니까?
호즈 처럼 나는 자유로울 것이다, 나는 갈 것이다, 그렇게 하라.
최적화에 대해 질문이 있습니다. EMA 알고리즘 이해하기. 아시다시피, 실제로 시간을 보내는 재귀가 있습니다. 원래 코드에 따르면:
...
https://www.mql5.com/ru/forum/144691 로 이동했습니다.
호즈 처럼 나는 자유로울 것이다, 나는 갈 것이다, 그렇게 하라.
최적화에 대해 질문이 있습니다. EMA 알고리즘 이해하기. 아시다시피, 실제로 시간을 보내는 재귀가 있습니다. 원래 코드 에 따르면:
EMA가 생성하는 가중치를 처리하기 위해 특별히 matcad를 사용했습니다.
그건 그렇고, 이제 EMA를 사용하는 지표(지수라기보다 멱법칙이라고 하는 것이 더 정확할 것입니다)가 14와 같은 기간을 사용하는 이유가 명확해졌습니다. 마지막 가중치가 너무 높은데 다음 가중치가 이전 가중치보다 더 중요하다면 파워 함수를 그냥 감쌀 수 있다면? 재귀 종료 후의 최종 가중치가 공식으로 도출될 수 있다면 왜 재귀를 사용하는지 더 이상 묻지 않습니다(F(n,x) 및 y(n,x) 참조).
아마도 자신의 스레드를 열어야 할 것입니다. "초보자를 위한 브랜치"가 필요한 이유