같은 클래스의 다른 속성에 대한 클래스 속성의 액세스를 구성하는 가장 좋은 방법은 무엇입니까?
즉, "이" 대신 "부모"와 같은 것을 사용하고 싶습니다.
mat.chast 배우기)
class Map;
struct _Seeker {
Map* parent;
int holder;
_Seeker(Map* _parent):parent(_parent){}
void Get(){holder = parent.prize;};
};
class Map {
_Seeker seekerForPrize;
public :
int prize;
Map():seekerForPrize(& this ){}
};
표시기에 ArraySetAsSeries( array[], false)를 사용했습니다. 표시기에서 iMa(...,i) 를 사용해야 했는데 결과적으로 반대 방향으로 인덱싱되었습니다. iMa()가 어떻게든 ArraySetAsSeries로 인덱싱 순서를 변경할 수 있습니까?
지금까지 나는 이것을 했습니다: Rates_total-i (다른 쪽 끝에서 계산), 그러나 이것이 올바른 결정인지 확실하지 않습니다.
나는 스스로 대답 할 것입니다 (아마도 누군가가 유용 할 것입니다). Include MovingAverages.mqh(SimpleMAOnBuffer) 예제를 사용하여 데이터 버퍼를 만들(리메이크) 할 수 있으며 예제에 이미 ArrayGetAsSeries가 있으므로 ArraySetAsSeries 를 사용하지 않아도 됩니다.
//+------------------------------------------------------------------+//| Data on array |//+------------------------------------------------------------------+int DataBuffer( constint rates_total, constint prev_calculated, constint begin,
constdouble & data[], double & buffer[])
{
int i,limit;
//--- check for data//--- save as_series flagsbool as_series_data= ArrayGetAsSeries (data);
bool as_series_buffer= ArrayGetAsSeries (buffer);
if (as_series_data)
ArraySetAsSeries (data, false );
if (as_series_buffer)
ArraySetAsSeries (buffer, false );
//--- first calculation or number of bars was changedif (prev_calculated== 0 ) // first calculation
{
limit=begin+ 1 ;
//--- set empty value for first barsfor (i= 0 ; i<limit- 1 ; i++)
buffer[i]= 0.0 ;
//--- calculate first visible valuedouble firstValue= 0 ;
for (i=begin; i<limit; i++)
firstValue=data[i];
buffer[limit- 1 ]=firstValue;
}
else
limit=prev_calculated- 1 ;
//--- main loopfor (i=limit; i<rates_total- 1 ; i++)
buffer[i]=data[i];
//--- restore as_series flagsif (as_series_data)
ArraySetAsSeries (data, true );
if (as_series_buffer)
ArraySetAsSeries (buffer, true );
//---return (rates_total);
}
//+------------------------------------------------------------------+
같은 클래스의 다른 속성에 대한 클래스 속성의 액세스를 구성하는 가장 좋은 방법은 무엇입니까?
즉, "이" 대신 "부모"와 같은 것을 사용하고 싶습니다.
표시기에 ArraySetAsSeries ( array[], false)를 사용했습니다. 표시기에서 iMa(...,i) 를 사용해야 했는데 결과적으로 반대 방향으로 인덱싱되었습니다. iMa()가 어떻게든 ArraySetAsSeries로 인덱싱 순서를 변경할 수 있습니까?
지금까지 나는 이것을 했습니다: Rates_total-i (다른 쪽 끝에서 계산), 그러나 이것이 올바른 결정인지 확실하지 않습니다.같은 클래스의 다른 속성에 대한 클래스 속성의 액세스를 구성하는 가장 좋은 방법은 무엇입니까?
즉, "이" 대신 "부모"와 같은 것을 사용하고 싶습니다.
mat.chast 배우기)
얘들아. 인디게이터를 계좌번호 로 연결하는 코드를 알려주시고, 계정 연동 외에 라이센스 키 추가도 가능하게 해주실거죠?) 감사합니다...
구조 요소의 이름을 문자열로 대체하여 참조하는 방법에 대한 질문이 있습니다.
누가 알려줄까, 잘했어!표시기에 ArraySetAsSeries( array[], false)를 사용했습니다. 표시기에서 iMa(...,i) 를 사용해야 했는데 결과적으로 반대 방향으로 인덱싱되었습니다. iMa()가 어떻게든 ArraySetAsSeries로 인덱싱 순서를 변경할 수 있습니까?
지금까지 나는 이것을 했습니다: Rates_total-i (다른 쪽 끝에서 계산), 그러나 이것이 올바른 결정인지 확실하지 않습니다.나는 스스로 대답 할 것입니다 (아마도 누군가가 유용 할 것입니다). Include MovingAverages.mqh(SimpleMAOnBuffer) 예제를 사용하여 데이터 버퍼를 만들(리메이크) 할 수 있으며 예제에 이미 ArrayGetAsSeries가 있으므로 ArraySetAsSeries 를 사용하지 않아도 됩니다.
구조 요소의 이름을 문자열로 대체하여 참조하는 방법에 대한 질문이 있습니다.
누가 알려줄까, 잘했어!컴파일 후에는 변수 이름이 없습니다.
당신이 생각해 내야 할 매크로 대체가있는 것
나는 문자열 유형 이 마음에 들지 않습니다. 저는 항상 예상치 못한 많은 옵션을 기대합니다. 열거형으로 예제를 스케치했습니다. 아마도 다음과 같이 적합할 것입니다.
상향:
필드로 작업하는 방법을 구조에 도입하는 것이 더 논리적이지만, 즉 그래서:
컴파일 후에는 변수 이름이 없습니다.
이고르, 우아하게 보는 것이 효과가 없다는 것을 이해했습니다. 명확성을 위해 데이터 경로를 단축하려고 생각했지만 사례 시트와 매크로 대체를 얻을 것입니다. 아마 긴 포스팅을 하게 될 것 같습니다. 다시 생각해도 해법은 흥미롭다. 고맙습니다!
구조 요소의 이름을 문자열로 대체하여 참조하는 방법에 대한 질문이 있습니다.
누가 알려줄까, 잘했어!