Vinin : init()에서 항상 시장 환경을 사용할 수 있는 것은 아님을 잊지 마십시오.
솔직히 이 소식이 무척 궁금했습니다. 어떤 조건에서 시장을 이용할 수 없을지 상상해 보았습니다. 환경: 어드바이저가 켜진 순간 연결이 끊어지거나 어드바이저가 토요일이나 일요일에 시작된 경우와 같을 수 있습니다. 나는 이런 유형의 문제를 발견하지 못했습니다. 한편으로 그들은 init()에서 값을 찾는 과정을 반복할 수 있다고 말하지만 init()은 시간이 제한적이라는 것을 알았습니다. 새로운 막대(최소 M1)가 나타날 때 start() 시작 시 시장에서 값을 찾을 수 있습니다. 환경, 그것은 모든 틱 보다 낫습니다.
안녕하세요. 말해봐 - 매분 수직선 을 그리는 작업은 가치가 있습니다. 그림을 분 단위로 묶는 것이 아니라 분당 개봉 가격으로 묶는 방법. 어려움은 분의 시가를 비표준 시간에 식별해야 한다는 것입니다. 분 아닙니다. 그런 코드를 작성했는데 칠면조가 비표준 시간에 걸려 있으면 분의 시작 가격을 입력하는 방법을 이해하지 못합니다.
new_Minute=TimeMinute(시간[i]) != TimeMinute(시간[i+1]); // 새로운 분
안녕하세요. 말해봐 - 매분 수직선을 그리는 작업은 가치가 있습니다. 그림을 분 단위로 묶는 것이 아니라 분당 개봉 가격으로 묶는 방법. 어려움은 분의 시가를 비표준 시간에 식별해야 한다는 것입니다. 분 아닙니다. 그런 코드를 작성했는데 칠면조가 비표준 시간에 걸려 있으면 분의 시작 가격을 입력하는 방법을 이해하지 못합니다.
new_Minute=TimeMinute(시간[i]) != TimeMinute(시간[i+1]); // 새로운 분
내 거래 전략은 이미 형성된 끝에서 두 번째 막대[숫자 1]에서 보류 중인 주문 을 열도록 설계되었습니다. 저것들. 그는 포지션(바이스톱 및 셀스톱에 대한 보류 주문)을 열고 가격이 첫 번째 막대의 가격 범위의 고가/저가를 20포인트 초과하면 트리거됩니다(개시 가격).
동시에 다음을 기반으로 트리거되지 않은 보류 중인 주문의 자동 삭제를 제공합니다. 새로운 막대 번호 1이 형성되면 그에 따라 보류 중인 주문/주문의 시작 가격이 다음과 일치하지 않습니다. 새로운 현재 막대의 고가/저가 1 +/- 20포인트(두 인접 막대의 고가/저가 거의 일치하지 않기 때문에 가장 가능성이 높음).
그러나 어떤 이유로 그는 먼저 두 위치를 모두 열었지만 몇 초 후에 그 중 하나를 닫습니다(1번의 새 막대는 아직 형성되지 않았지만).
여러분, 전문가 여러분, 저는 초보자이며 아마도 약간의 뉘앙스를 고려하지 않을 것입니다. 어디가 오류인지 알려주세요.
RefreshRates ();
for ( int n= 1 ;n<= OrdersTotal ();n++) //цикл перебора всех имеющихся ордеров
{
if ( OrderSelect (n- 1 ,SELECT_BY_POS)==true) //если найден ордер, то...
{
if (( OrderType ()== 4 )&& ( OrderOpenPrice ()!= High[ 1 ]+ 20 * Point )) // проверяем его тип (buystop/sellstop), если его тип buystop и цена покупки не совпадает с максимумом текущего 1-го бара, то..
{
OrderDelete ( OrderTicket ()); // удаляем его
}
if (( OrderType ()== 5 ) && ( OrderOpenPrice ()!= Low[ 1 ]- 20 * Point )) // если его тип sellstop и цена продажи не совпадает с минимумом текущего 1-го бара, то ...
{
OrderDelete ( OrderTicket ()); //удаляем его
}
}
}
init()에서 항상 시장 환경을 사용할 수 있는 것은 아님을 잊지 마십시오.
...제 코드를 분석해 주셔서 대단히 감사합니다. 시간을 내주셔서 감사합니다.
그리고 while 문은 값이 참일 때 작동합니다. 그것은 거짓 값을 받아들이지 않는 것으로 나타났습니다.
감정인을 위한 질문입니다. OrderSend()에 대한 도움말에서 슬리피지는 3으로 대체되었습니다. 이것은 4자리 따옴표에 대한 예입니까? 5자리 문자의 경우 3을 남겨둘 수 있습니까? 아니면 30이 필요한가요?
5자리의 경우 30이 필요합니다.
나는 이러한 구성을 각 어드바이저의 init()에 삽입합니다. 그러면 DC의 4개 또는 5개 기호에서는 중요하지 않습니다. 다음을 권장합니다.
안녕하세요. 말해봐 - 매분 수직선 을 그리는 작업은 가치가 있습니다. 그림을 분 단위로 묶는 것이 아니라 분당 개봉 가격으로 묶는 방법. 어려움은 분의 시가를 비표준 시간에 식별해야 한다는 것입니다. 분 아닙니다. 그런 코드를 작성했는데 칠면조가 비표준 시간에 걸려 있으면 분의 시작 가격을 입력하는 방법을 이해하지 못합니다.
new_Minute=TimeMinute(시간[i]) != TimeMinute(시간[i+1]); // 새로운 분
Ind_Buffer_0[i]=0
if(new_Minute && Period()<30) Ind_Buffer_0[i]=max;
...그리고 객체를 통한 표준 그리기.
누군가가 가능하다면 무엇을 할 수 있는지 말해 줄 수 있습니까?
안녕하세요. 말해봐 - 매분 수직선을 그리는 작업은 가치가 있습니다. 그림을 분 단위로 묶는 것이 아니라 분당 개봉 가격으로 묶는 방법. 어려움은 분의 시가를 비표준 시간에 식별해야 한다는 것입니다. 분 아닙니다. 그런 코드를 작성했는데 칠면조가 비표준 시간에 걸려 있으면 분의 시작 가격을 입력하는 방법을 이해하지 못합니다.
new_Minute=TimeMinute(시간[i]) != TimeMinute(시간[i+1]); // 새로운 분
Ind_Buffer_0[i]=0
if(new_Minute && Period()<30) Ind_Buffer_0[i]=max;
...그리고 객체를 통한 표준 그리기.
누군가가 가능하다면 무엇을 할 수 있는지 말해 줄 수 있습니까?
동안 조건을 min으로 지정해야 합니다. 예를 들어 두 개의 값을 취할 수 있습니다. 플래그(참 또는 거짓). 상수(true)가 있고 조건이 없으면 while이 필요하지 않습니다. while(true)과 괄호를 제거하면 결과가 동일합니다.
while 문을 제거하면 계속 문이 어떻게 작동합니까?
결국 오류가 발생하면 조건 확인 및 주문을 여는 것을 반복해야 합니다.
계속 문은 가장 가까운 외부 while 또는 for 루프 문의 시작 부분으로 제어를 전달하여 다음 반복이 시작되도록 합니다.
내가 뭔가를 이해하지 못하는 건 아닐까?
안녕하세요.
내 거래 전략은 이미 형성된 끝에서 두 번째 막대[숫자 1]에서 보류 중인 주문 을 열도록 설계되었습니다. 저것들. 그는 포지션(바이스톱 및 셀스톱에 대한 보류 주문)을 열고 가격이 첫 번째 막대의 가격 범위의 고가/저가를 20포인트 초과하면 트리거됩니다(개시 가격).
동시에 다음을 기반으로 트리거되지 않은 보류 중인 주문의 자동 삭제를 제공합니다. 새로운 막대 번호 1이 형성되면 그에 따라 보류 중인 주문/주문의 시작 가격이 다음과 일치하지 않습니다. 새로운 현재 막대의 고가/저가 1 +/- 20포인트(두 인접 막대의 고가/저가 거의 일치하지 않기 때문에 가장 가능성이 높음).
그러나 어떤 이유로 그는 먼저 두 위치를 모두 열었지만 몇 초 후에 그 중 하나를 닫습니다(1번의 새 막대는 아직 형성되지 않았지만).
여러분, 전문가 여러분, 저는 초보자이며 아마도 약간의 뉘앙스를 고려하지 않을 것입니다. 어디가 오류인지 알려주세요.
분수를 비교할 때는 반드시 유효숫자로 정규화해야 합니다.
주문을 삭제할 때는 처음부터가 아니라 끝부터 계산해야 합니다.