프로그래머 여러분, 코드로 과거 지표 판독값을 검색하는 방법을 러시아어로 설명해 주시겠습니까? 예를 들어, 매도할 때 제로 바에서 3 하이 ZigZaga 또는 8번째 상위 프랙탈 이상에서 손절매를 설정해야 합니다.
막대가 0인 상태 에서 차트의 시작 부분 까지 순환합니다(int x=0). 루프에서 필요한 표시기를 호출합니다(예: 프랙탈). 값이 비어 있지 않으면 x에 1을 추가하고 x가 원하는 값에 도달하면 루프 반복을 기억하고 루프를 종료합니다. 반복 값은 이론적으로 원하는 프랙탈이 있는 막대의 수입니다. 이론적으로 M1에서 실행되는 주기 동안 새로운 막대가 하나 더 나타날 수 있기 때문에 포인터가 잘못된 막대에 있을 것입니다.)))
evillive : 막대가 0인 상태에서 차트의 시작 부분까지 순환합니다(int x=0). 루프에서 필요한 표시기를 호출합니다(예: 프랙탈). 값이 비어 있지 않으면 x에 1을 추가하고 x가 원하는 값에 도달하면 루프 반복을 기억하고 루프를 종료합니다. 반복 값은 이론적으로 원하는 프랙탈이 있는 막대의 수입니다. 이론적으로 M1에서 실행되는 주기 동안 새로운 막대가 하나 더 나타날 수 있기 때문에 포인터가 잘못된 막대에 있을 것입니다.)))
시간을 절약해야 합니다. 그리고 마지막 프랙탈이 생성된 시간을 저장하는 배열을 사용하는 것이 좋습니다. 불필요한 사이클의 실패로 인해 작업 속도가 감소합니다.
double Up= iFractals ( Symbol (), 0 ,MODE_UPPER, 3 ); //верхний фракталdouble Down= iFractals ( Symbol (), 0 ,MODE_LOWER, 3 ); //нижний фрактал//----if (Up> 0 &&Down== 0 &&Volume[ 0 ]< 2 ) //если верхний есть а нижнего нет то:
{
if ((High[ 3 ]+ 5 * Point -Ask)/ Point >MarketInfo( Symbol (),MODE_STOPLEVEL)) //если цена позволяет выставить отложенный ордер то:OrderSend ( Symbol (),OP_BUYSTOP,Lot,High[ 3 ]+ 5 * Point , 20 ,High[ 3 ]-sl,High[ 3 ]+tp, NULL ,Magic, 0 ,Green); // то выставляем байстоп на 5 пунктов выше верхнего фрактала
{
for ( int pos= 0 ;pos< OrdersTotal ();pos++) // скопировал эту строчку хз откуда ибо не понимаю грёбаный счетчик :) тут видимо и косякOrderSelect (pos,SELECT_BY_POS,MODE_TRADES); // ищем текущие ордераif (OrderMagicNumber()==Magic&&OrderSymbol()== Symbol ()&&OrderType()==OP_BUYSTOP) // и если все условия совпадают то:
{
OrderModify(OrderTicket(),Up+ 5 * Point ,Up-sl,Up+tp, 0 ,CLR_NONE); //переносим байстоп на новый верхний фрактал
}
예, 여전히 혼란이 있습니다. N이 datetime형이면 D' 19:00 '은 텍스트 형식입니다. 그것들을 비교할 수 있습니까? 아니요. 시간 비교의 경우 나는 씁니다.
프로그래머 여러분, 코드로 과거 지표 판독값을 검색하는 방법을 러시아어로 설명해 주시겠습니까? 예를 들어, 매도할 때 제로 바에서 3 하이 ZigZaga 또는 8번째 상위 프랙탈 이상에서 손절매를 설정해야 합니다.
프로그래머 여러분, 코드로 과거 지표 판독값을 검색하는 방법을 러시아어로 설명해 주시겠습니까? 예를 들어, 매도할 때 제로 바에서 3 하이 ZigZaga 또는 8번째 상위 프랙탈 이상에서 손절매를 설정해야 합니다.
막대가 0인 상태에서 차트의 시작 부분까지 순환합니다(int x=0). 루프에서 필요한 표시기를 호출합니다(예: 프랙탈). 값이 비어 있지 않으면 x에 1을 추가하고 x가 원하는 값에 도달하면 루프 반복을 기억하고 루프를 종료합니다. 반복 값은 이론적으로 원하는 프랙탈이 있는 막대의 수입니다. 이론적으로 M1에서 실행되는 주기 동안 새로운 막대가 하나 더 나타날 수 있기 때문에 포인터가 잘못된 막대에 있을 것입니다.)))
프로그래머 여러분, 코드로 과거 지표 판독값을 검색하는 방법을 러시아어로 설명해 주시겠습니까? 예를 들어, 매도할 때 제로 바에서 3 하이 ZigZaga 또는 8번째 상위 프랙탈 이상에서 손절매를 설정해야 합니다.
"러시아어"와 "프로그래밍 언어"(코드로 설명을 원하는 경우)는 같은 것이 아닙니다.
알고리즘적으로 다음과 같은 경우:
1) "프랙탈 포인트"가 없는 경우 관심 있는 ZigZag가 반환하는 값을 결정합니다. EMPTY_VALUE 또는 0.0일 수 있습니다.
2) 루프에서 iCustom()을 통해 루프에서 확인된 바에 해당 버퍼의 인디케이터 값을 가져와 "빈 값"과의 차이를 확인하고 이러한 차이의 카운터를 유지합니다. 카운터가 귀하의 경우 세 번째와 같을 때 - 이 막대의 숫자(N)는 원하는 막대가 됩니다.
3) 높음[N]\낮음[N] - 원하는 수준이 됩니다.
표준 ZigZag High의 경우 다음과 같은 것을 찾고 있습니다.
그러나 그 전에 ZigZag 코드에서 표시되는 버퍼 수를 1에서 3으로 변경해야 합니다.
답변 감사합니다. 다시 답변해 드리겠습니다. :) 이제 문제는 이것입니다.
http://clip2net.com/s/j7xvk9
왜 주문을 수정하지 않는지 이해할 수 없지만 멍청하게 새 예금을 엽니 다.
답변 감사합니다. 다시 답변해 드리겠습니다. :) 이제 문제는 이것입니다.
http://clip2net.com/s/j7xvk9
왜 주문을 수정하지 않는지 이해할 수 없지만 멍청하게 새 예금을 엽니 다.
보여주셔서 감사합니다 :)
1) 모든 전략은 동시에 열린 주문의 수로 결정되어야 합니다. 따라서 다음 주문을 열기 전에 이미 몇 개의 주문이 열려 있는지 확인해야 합니다.
2) 하나의 막대는 각각 UPPER 및 LOWER 프랙탈을 가질 수 없습니다.
프로그래머 바보의 범주에 속합니다.
3) 버퍼 인디케이터 의 값을 반환 하기 위한 조건을 작성하기 전에 "비어 있는" 값이 정확히 무엇인지 알아야 합니까? 0인지 확인하셨나요?
4) 건설
(대부분의 경우) 작동하지만 개발자의 "자유로운 발명"이며 거래자의 작업에 정보가 없기 때문에 부자연 스럽습니다. 대안은 새 막대를 추적하는 것입니다.
5) 다음과 같이 기본부터 시작해야 합니다.
당신이 쓰는 것을 전혀 이해하지 못한다고 말합니다.
이해하는 가장 좋은 방법은 다른 사람의 코드를 연구하고 자신의 목적에 맞게 수정하는 것입니다. 행운을 빕니다.