sllawa3 : 스레드에게 말하십시오.. 나는 세 번째로 글을 쓰고 아무도 대답하지 않습니다..AccountEquity() 한 바 뒤로 (과거 바에서) 어떻게 쓰는가?
답: 안 됩니다. AccountEquity()는 자기자본의 양을 반환하며 막대의 수에 의존하지 않습니다. 단순히 막대의 기록을 롤백하여 이전 값을 찾을 수 없습니다. 그 가치는 오픈/클로즈드, 수익/손실 거래의 수에 따라 달라집니다. 예를 들어 "자본의 히스토리"를 기록하려면 정적 배열을 만들고 예를 들어 각 막대가 열릴 때 이 배열에 AccountEquity() 값을 기록해야 합니다. 그에 따라 배열을 스크롤하여 지분 변경 내역을 가져옵니다.
답: 안 됩니다. AccountEquity()는 자기자본 금액을 반환하며 막대 수에 의존하지 않습니다. 단순히 막대기의 역사를 롤백하여 이전 값을 찾는 것은 불가능합니다. 그 가치는 오픈/클로즈드, 수익/손실 거래의 수에 따라 달라집니다. 예를 들어 "자본의 히스토리"를 기록하려면 정적 배열을 만들고 예를 들어 각 막대가 열릴 때 이 배열에 AccountEquity() 값을 기록해야 합니다. 따라서 배열을 스크롤하여 지분 변경 내역을 가져옵니다.
여러분, 지난 80일 동안 차트의 가장 높은 막대에 하나의 화살표를 설정하고 같은 80일 동안 가장 낮은 막대에 다른 화살표를 설정하는 방법을 알 수 없습니다. 이 코드를 만들었지만 화살표 뭉치를 뿜어내고... 각 막대의 최저점에서만 80일 동안 최소 및 최대 화살표가 필요하고 다음 80일 동안 화살표가 하나 필요합니다. 조언해주실 수 있나요?
//====================================================================================int NBars,MostHiBar, MostLoBar;
double MostHiPrice,MostLoPrice;
datetime TMostHiBar,TMostLoBar;
//-----------------------------------------------------------------
NBars = 80 ;
MostHiBar = iHighest( NULL , PERIOD_D1 ,MODE_HIGH,NBars, 0 ); // Номер "максимального" бара
MostLoBar = iLowest ( NULL , PERIOD_D1 ,MODE_LOW, NBars, 0 ); // Номер "минимального" бара
MostHiPrice = iHigh ( NULL , PERIOD_D1 ,MostHiBar); // Цена "максимального" бара
MostLoPrice = iLow ( NULL , PERIOD_D1 ,MostLoBar); // Цена "минимального" бара
TMostHiBar = iTime ( NULL , PERIOD_D1 ,MostHiBar); // Время открытия "максимального" бара
TMostLoBar = iTime ( NULL , PERIOD_D1 ,MostLoBar); // Время открытия "минимального" бараComment (
"\n" ,
"Наибольшая цена за " , NBars, " дней = " , MostHiPrice, "\n" ,
"Наименьшая цена за " , NBars, " дней = " , MostLoPrice, "\n" ,
"Время наибольш. бара = " , Time[MostHiBar], "\n" ,
"Время наименьш. бара = " , Time[MostLoBar] // сюда пробовал и TMostLoBar вставлять - пофигу...
);
SetArrow( 241 , MediumSpringGreen , "" , Time[MostHiBar], High[MostHiBar], 0 );
SetArrow( 242 , OrangeRed , "" , Time[MostLoBar], Low[MostLoBar], 0 );
//====================================================================================
//+----------------------------------------------------------------------------+
//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Версия : 12.10.2007 |
//| Описание : Установка значка на графике, объект OBJ_ARROW. |
//+----------------------------------------------------------------------------+
//| Параметры: |
//| cd - код значка |
//| cl - цвет значка |
//| nm - наименование ("" - время открытия текущего бара) |
//| t1 - время открытия бара (0 - текущий бар) |
//| p1 - ценовой уровень (0 - Bid) |
//| sz - размер значка (0 - по умолчанию) |
//+----------------------------------------------------------------------------+
void SetArrow( int cd, color cl, string nm= "" , datetime t1= 0 , double p1= 0 , int sz= 0 )
{
if (nm== "" ) nm=DoubleToStr(Time[ 0 ], 0 );
if (t1<= 0 ) t1=Time[ 0 ];
if (p1<= 0 ) p1=Bid;
if ( ObjectFind (nm)< 0 ) ObjectCreate (nm, OBJ_ARROW , 0 , 0 , 0 );
ObjectSet(nm, OBJPROP_TIME1 , t1);
ObjectSet(nm, OBJPROP_PRICE1 , p1);
ObjectSet(nm, OBJPROP_ARROWCODE , cd);
ObjectSet(nm, OBJPROP_COLOR , cl);
ObjectSet(nm, OBJPROP_WIDTH , sz);
}
//====================================================================================
MathRand는 사용하기 전에 MathSrand()로 초기화해야 합니다 .
그리고 MathSrand()에 매개변수로 TimeLocal()을 전달하는 것이 좋습니다.
초기화는 한 번만 필요하며 32768 MathRand() 쿼리에 대해 반복이 발견되지 않습니다.
그 후에 새 시퀀스를 원하면 다시 초기화할 수 있습니다. 그렇지 않으면 동일한 시퀀스가 시작됩니다.
물론 각 단계에서 초기화할 수 있지만 초기화 매개변수가 변경되는 것을 추적해야 합니다.
그렇지 않으면 같은 순서가 될 것입니다
그게 내가하는 일입니다. 타임로컬이란?
같은 이야기에 같은 세트가 있습니다.
그게 내가하는 일입니다. 타임로컬이란?
같은 이야기에 같은 세트가 있습니다.
교과서의 예:
날짜시간시간로컬 ()
이 함수는 1970년 1월 1일 00:00부터 로컬 컴퓨터 시간을 초 단위로 반환합니다.
참고: 테스트할 때 현지 시간 이 시뮬레이션되고 시뮬레이션된 마지막 알려진 서버 시간과 일치합니다.
스레드에게 말하십시오.. 나는 세 번째로 글을 쓰고 아무도 대답하지 않습니다..AccountEquity() 한 바 뒤로 (과거 바에서) 어떻게 쓰는가?
답: 안 됩니다.
AccountEquity()는 자기자본의 양을 반환하며 막대의 수에 의존하지 않습니다.
단순히 막대의 기록을 롤백하여 이전 값을 찾을 수 없습니다.
그 가치는 오픈/클로즈드, 수익/손실 거래의 수에 따라 달라집니다.
예를 들어 "자본의 히스토리"를 기록하려면 정적 배열을 만들고 예를 들어 각 막대가 열릴 때 이 배열에 AccountEquity() 값을 기록해야 합니다.
그에 따라 배열을 스크롤하여 지분 변경 내역을 가져옵니다.
스레드에게 말하십시오.. 나는 세 번째로 쓰고 아무도 대답하지 않습니다..AccountEquity() 한 바 뒤로 (과거 바에서) 어떻게 쓰는가?
예를 들어 다음과 같이 변수의 새 막대 마다 기억해야 할 것 같습니다.
1. init() 함수의 초기 자산 값을 변수에 저장합니다. EquAkk=AccountEquity()라고 합시다.
2. 새 막대의 모양을 확인합니다( 물론 init 가 아님). 그렇다면
{
LastEqu=EquAck; // 과거(우리가 찾고 있는) 지분 값을 변수에 저장합니다.
EquAkk=AccountEquity(); // 새 자산 값 쓰기(다음 "과거" 값에 대해)
}
따라서 LastEqu 변수는 현재 막대의 마지막 막대에 에퀴티 값을 저장하고 다음 막대가 열리면 그 값을 새로운 방식으로 덮어씁니다...
...무릎꿇고 썼는데 확인도 안하고 벌써 잠들었으니 세게 차지마...
아이디어를 얻은 것 같아요...
답: 안 됩니다.
AccountEquity()는 자기자본 금액을 반환하며 막대 수에 의존하지 않습니다.
단순히 막대기의 역사를 롤백하여 이전 값을 찾는 것은 불가능합니다.
그 가치는 오픈/클로즈드, 수익/손실 거래의 수에 따라 달라집니다.
예를 들어 "자본의 히스토리"를 기록하려면 정적 배열을 만들고 예를 들어 각 막대가 열릴 때 이 배열에 AccountEquity() 값을 기록해야 합니다.
따라서 배열을 스크롤하여 지분 변경 내역을 가져옵니다.
글쎄요, 그것은 모든 것이 가능하다는 것을 의미합니다
글쎄, 나는 변수 대신에 배열을 사용하는 것이 좋습니다.
예를 들어 "자본의 히스토리"를 기록하려면 정적 배열을 만들고 예를 들어 각 막대가 열릴 때 이 배열에 AccountEquity() 값을 기록해야 합니다.
그에 따라 배열을 스크롤하여 지분 변경 내역을 가져옵니다.
MT에서 스탑으로 포지션을 열 수 있다고 말해주세요. 예를 들어, 우리는 지지/저항에 대한 정지를 설정하고 돌파하면 정지에 위치가 열립니다.
틀림없이. 이것만 스톱이 아니라 보류 중인 주문 이라고 합니다. 터미널을 엽니다. 그 안에 F1 키를 누릅니다. 나타나는 창에서 내용 - 거래 - 주문 유형을 엽니다.