다차원 배열을 다른 것으로 상상하면 방향이 더 쉬울 것입니다. 즉, 배열의 본질을 반영하는 모델을 찾으면 모델을 눈앞에 두기가 더 쉽습니다.
1차원 배열은 선(0에서 시작하는 좌표 광선)에 있는 객체입니다. 이러한 배열의 예는 상점의 대기열입니다. 줄의 첫 번째 사람은 지금 구매하는 사람 바로 뒤에 있는 사람입니다. 구매자는 라인의 첫 번째라고 할 수 없습니다. 그는 구매합니다. 그는 0입니다. 1차원 배열의 0 셀 내부에 있습니다.
2차원 배열은 평면(좌표 평면)에 있는 객체입니다. 그 예로 강당을 들 수 있습니다. 이런 저런 행, 이런 곳. 이 모델에 0행과 0자리를 추가하면 2차원 배열의 정확한 모델을 얻을 수 있습니다.
3차원 배열은 공간(좌표 공간)에 있는 객체입니다. 객체의 좌표는 세 개의 값으로 제공됩니다. 모서리가 잘린 큐브입니다. 모델은 입구 번호 0, 층 번호 0 및 아파트 번호 0(특히)이 있는 주거용 건물일 수 있습니다. 단, 각 입구에서 아파트 번호는 0부터 시작합니다.
4 차원 배열 은 1차원 배열과 유사합니다. 이것은 모든 점이 3차원 배열인 좌표 광선입니다. 모델 - 거리. 좌표는 집 번호, 입구 번호, 층 번호, 아파트 번호와 같은 값으로 제공됩니다.
등등 n차원에서 - 거리에서 지역으로, 도시 지역에서, 지역에서 도시로, 도시에서 국가로, 국가에서 행성으로...
GarKain : 열린 주문이 막대의 어느 순간에 열리고 다음 막대가 다음 막대에서만 열릴 수 있도록 만드는 방법을 설명할 수 있습니까?
주문 목록을 반복합니다. 다음 주문 의 시작 시간이 현재 막대의 시작 시간(Time[0])보다 크거나 같으면 이 통화 쌍에 대한 시작 주문을 금지하는 플래그를 설정합니다. 다음 촛불에서 사이클은 그러한 주문이 없음을 감지하고 금지를 설정하지 않습니다. 즉, 개시 주문을 금지하는 플래그를 제거합니다.
bool 시간 = true; if (OrdersTotal()>0){ for(int g=OrdersTotal()-1; g>=0; g--){ 날짜 시간 t; 주문 선택(g, SELECT_BY_POS ); if (OrderMagicNumber()!=MagicNumber){계속;} if (t<OrderOpenTime() || g==OrdersTotal()-1) t=OrderOpenTime();
bool 시간 = true; if (OrdersTotal()>0){ for(int g=OrdersTotal()-1; g>=0; g--){ 날짜 시간 t; 주문선택(g,SELECT_BY_POS); if (OrderMagicNumber()!=MagicNumber){계속;} if (t<OrderOpenTime() || g==OrdersTotal()-1) t=OrderOpenTime();
if (t>=시간[0]) 시간=거짓;}}
이대로 맞지?
아니요. 각 반복에서 루프 내부에 변수를 선언할 필요는 없습니다.
bool Torg=true;
for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--){
if (! OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) { Print ( "Ошибка № " , GetLastError (), " при выборе ордера № " ,i);}
else {
if ( OrderSymbol ()!= Symbol () || OrderMagicNumber ()!=MAGIC) { continue ;}
if ( OrderOpenTime ()>=Time[ 0 ]){
Torg=false;
}
}
}
// теперь используем результат работы цикла// Если есть сигнал и торг разрешён, то открываем ордер
bool 시간 = true; if (OrdersTotal()>0){ for(int g=OrdersTotal()-1; g>=0; g--){ 날짜 시간 t; 주문 선택(g,SELECT_BY_POS); if (OrderMagicNumber()!=MagicNumber){계속;} if (t<OrderOpenTime() || g==OrdersTotal()-1) t=OrderOpenTime();
if (t>=시간[0]) 시간=거짓;}}
이대로 맞지?
아니요, 오류를 발견했습니다.
bool 시간 = true; 날짜/시간 t=시간[1]; if (OrdersTotal()>0){ for(int g=OrdersTotal()-1; g>=0; g--){ 주문 선택(g, SELECT_BY_POS ); if (OrderMagicNumber()!=MagicNumber){계속;} if (t<OrderOpenTime()) t=OrderOpenTime();
처음으로 다차원 배열을 다루기 때문에 브레이크를 밟지 마십시오. :)
다차원 배열을 다른 것으로 상상하면 방향이 더 쉬울 것입니다. 즉, 배열의 본질을 반영하는 모델을 찾으면 모델을 눈앞에 두기가 더 쉽습니다.
1차원 배열은 선(0에서 시작하는 좌표 광선)에 있는 객체입니다. 이러한 배열의 예는 상점의 대기열입니다. 줄의 첫 번째 사람은 지금 구매하는 사람 바로 뒤에 있는 사람입니다. 구매자는 라인의 첫 번째라고 할 수 없습니다. 그는 구매합니다. 그는 0입니다. 1차원 배열의 0 셀 내부에 있습니다.
2차원 배열은 평면(좌표 평면)에 있는 객체입니다. 그 예로 강당을 들 수 있습니다. 이런 저런 행, 이런 곳. 이 모델에 0행과 0자리를 추가하면 2차원 배열의 정확한 모델을 얻을 수 있습니다.
3차원 배열은 공간(좌표 공간)에 있는 객체입니다. 객체의 좌표는 세 개의 값으로 제공됩니다. 모서리가 잘린 큐브입니다. 모델은 입구 번호 0, 층 번호 0 및 아파트 번호 0(특히)이 있는 주거용 건물일 수 있습니다. 단, 각 입구에서 아파트 번호는 0부터 시작합니다.
4 차원 배열 은 1차원 배열과 유사합니다. 이것은 모든 점이 3차원 배열인 좌표 광선입니다. 모델 - 거리. 좌표는 집 번호, 입구 번호, 층 번호, 아파트 번호와 같은 값으로 제공됩니다.
등등 n차원에서 - 거리에서 지역으로, 도시 지역에서, 지역에서 도시로, 도시에서 국가로, 국가에서 행성으로...
열린 주문이 막대의 어느 순간에 열리고 다음 막대가 다음 막대에서만 열릴 수 있도록 만드는 방법을 설명할 수 있습니까?
주문 목록을 반복합니다. 다음 주문 의 시작 시간이 현재 막대의 시작 시간(Time[0])보다 크거나 같으면 이 통화 쌍에 대한 시작 주문을 금지하는 플래그를 설정합니다. 다음 촛불에서 사이클은 그러한 주문이 없음을 감지하고 금지를 설정하지 않습니다. 즉, 개시 주문을 금지하는 플래그를 제거합니다.
주문 목록을 반복합니다. 다음 주문의 시작 시간이 현재 막대의 시작 시간(Time[0])보다 크거나 같으면 이 통화 쌍에 대한 시작 주문을 금지하는 플래그를 설정합니다.
아아 정말 감사합니다
코드가 하나의 통화 쌍에 대해서만 작동하는 경우 라인의 다른 쌍에 대한 주문 필터링을 설정하십시오.
코드가 하나의 통화 쌍에 대해서만 작동하는 경우 라인의 다른 쌍에 대한 주문 필터링을 설정하십시오.
할 수 있다.
할 수 있다.
bool 시간 = true;
if (OrdersTotal()>0){
for(int g=OrdersTotal()-1; g>=0; g--){
날짜 시간 t;
주문 선택(g, SELECT_BY_POS );
if (OrderMagicNumber()!=MagicNumber){계속;}
if (t<OrderOpenTime() || g==OrdersTotal()-1) t=OrderOpenTime();
if (t>=시간[0]) 시간=거짓;}}
이대로 맞지?
bool 시간 = true;
if (OrdersTotal()>0){
for(int g=OrdersTotal()-1; g>=0; g--){
날짜 시간 t;
주문선택(g,SELECT_BY_POS);
if (OrderMagicNumber()!=MagicNumber){계속;}
if (t<OrderOpenTime() || g==OrdersTotal()-1) t=OrderOpenTime();
if (t>=시간[0]) 시간=거짓;}}
이대로 맞지?
아니요. 각 반복에서 루프 내부에 변수를 선언할 필요는 없습니다.
bool 시간 = true;
if (OrdersTotal()>0){
for(int g=OrdersTotal()-1; g>=0; g--){
날짜 시간 t;
주문 선택(g,SELECT_BY_POS);
if (OrderMagicNumber()!=MagicNumber){계속;}
if (t<OrderOpenTime() || g==OrdersTotal()-1) t=OrderOpenTime();
if (t>=시간[0]) 시간=거짓;}}
이대로 맞지?
bool 시간 = true;
날짜/시간 t=시간[1];
if (OrdersTotal()>0){
for(int g=OrdersTotal()-1; g>=0; g--){
주문 선택(g, SELECT_BY_POS );
if (OrderMagicNumber()!=MagicNumber){계속;}
if (t<OrderOpenTime()) t=OrderOpenTime();
if (t>=시간[0]) 시간=거짓;}}
이대로 맞지?