학습 논리 - 페이지 5

 
Vinin :


이것은 내 라인이 아닙니다. 이것은 저작권입니다

start() 함수에 대한 최적의 코드

이 두 줄은 간단히 말해서 이상해 보입니다.

   limit = Bars - counted_bars- 1 ;
   if ( Bars - counted_bars > 2 ) limit = Bars - nPeriod- 1 ;

더 나은 방법:

   if ( Bars - counted_bars > 2 ) limit = Bars - nPeriod- 1 ;
   else limit = Bars - counted_bars- 1 ;
 
PapaYozh :

다음과 같이 작성할 수 있는데 왜 부울 변수 주변에서 그러한 춤이 추는지 명확하지 않습니다.

나는 그것을 좋아했다. PapaYozh 를 상기시켜 주셔서 감사합니다. 결국, 그는 자신이 비슷한 디자인을 만들었고 잊어 버렸습니다 ...
 
Vinin :


그리고 논리도 생각의 논리입니다.

세 번째 옵션은 지표의 논리적 조건을 완전히 포기하는 것입니다. 질문이 생깁니다. 가능합니까?

해보자

이렇게 하려면 몇 가지 부울 변수를 추가하십시오.

시작 함수의 전체 코드는 다음과 같습니다.


간소화할 수 있을 것 같아요

for(int i = 0; i < 한계; i++)
{
// 옵션 three_v1

high=iMA(NULL,0, 마침표 ,0,MODE_EMA,PRICE_HIGH,i);
low=iMA(NULL,0,마침표,0,MODE_EMA,PRICE_LOW,i);
atr=높음-낮음;
MaTDn[i] = 낮음 - atr;
MaTUp[i] = 높음 + atr;
}

 
Mathemat :
나는 그것을 좋아했다. PapaYozh 를 상기시켜 주셔서 감사합니다. 결국, 그는 자신이 비슷한 디자인을 만들었고 잊어 버렸습니다 ...

제 생각 에는 Symbol() 함수 호출을 남용하고 있습니다.

나는 다음과 같이 쓸 것이다:

   string smbl= Symbol ();
   showEUR  = ( StringFind (smbl, "EUR" , 0 ) != - 1 );
   showUSD  = ( StringFind (smbl, "USD" , 0 ) != - 1 );
   showGBP  = ( StringFind (smbl, "GBP" , 0 ) != - 1 );
   showCHF  = ( StringFind (smbl, "CHF" , 0 ) != - 1 );
   showJPY  = ( StringFind (smbl, "JPY" , 0 ) != - 1 );
그러나 그것은 논리에 적용되지 않습니다 :)
 
Vinin :

사실 모든 것이 간단합니다. 다른 사람들이 최적의 코드를 만들 수 있도록 돕고 싶고, 나 자신도 다른 사람들에게서 배우고 싶은 마음이 있었습니다.

시간이 지남에 따라 잘 정의된 고정 관념이 개발되어 때로는 (가장 자주) 도움이되고 때로는 방해가된다는 것은 비밀이 아닙니다.

지표의 버전을 준비하고 수행된 작업과 이유를 설명하려고 합니다. 물론 흥미롭다면.


최적의 코드를 만드는 방법을 예를 들어 설명하려면 - 작동하지 않을 것입니다 - 너무 많은 생략이 있을 것입니다.

사실 최적의 코드를 만들기 위한 규칙은 많고, 이 덩어리는 다소 두꺼운 책과 같다. 예를 들어, MQL4 언어를 접한 사람들 중 프로세서가 곱셈과 나눗셈보다 덧셈과 뺄셈 연산을 수행하는 것이 훨씬 쉽다는 것을 아는 사람은 많지 않습니다. 코드 최적화의 관점에서 a=b*2보다 a=b+b를 작성하는 것이 더 낫다는 것을 아는 사람은 많지 않습니다. 따라서 프로그래밍과 최적화의 논리를 이해하기 위해서는 알고리즘 언어 공부뿐만 아니라 최적의 코드 작성에 관한 에세이를 참고하고 사용자에게 누락을 방지하고 코드 변경 횟수를 최소화하기 위해 향후 프로그램의 순서도 .

이 게시물에 첨부된 링크는 빌딩 코드에 대한 훌륭한 책을 다운로드할 수 있는 링크입니다.

S. 맥코넬 "완벽한 코드"


여기에서 책을 다운로드할 수 있습니다. http://depositfiles.com/files/ebk6t6t5h (파일 크기 21MB. 형식 - djvu)

일반적으로 이 스레드에서는 최적화된 코드가 원래 코드보다 나은 이유와 최적화가 이러한 방식으로 수행된 이유에 대한 설명과 함께 원래 및 최적화된 코드 섹션의 특별한 경우에만 고려하는 것이 가능합니다. 나는 그것이 당신이 처음에 원했던 것이 정확하다고 생각합니다.

 
drknn :


이 게시물에 첨부된 링크는 빌딩 코드에 대한 훌륭한 책을 다운로드할 수 있는 링크입니다.

S. 맥코넬 "완벽한 코드"

+1, 이 책은 매우 유용합니다.
 
drknn :

일반적으로 이 스레드에서는 최적화된 코드가 원래 코드보다 나은 이유와 최적화가 이러한 방식으로 수행된 이유에 대한 설명과 함께 원래 및 최적화된 코드 섹션의 특별한 경우에만 고려하는 것이 가능합니다. 나는 그것이 당신이 처음에 원했던 것이 정확하다고 생각합니다.

그것도 나쁘지는 않지만, 그래도 브랜치의 이름을 명확히 하거나 이미 로직을 공부하기 시작하는 것이 좋을 것입니다.

2번은 어떻게 해야할지 모르겠네요...

 
denis_orlov :

도 나쁘지는 않지만 그래도 브랜치의 이름을 명확히 하거나 이미 논리를 공부하기 시작하는 것이 좋을 것입니다.

2번은 어떻게 해야할지 모르겠네요...


논리 ( 다른 그리스어 λογική - "추론의 과학", λόγος 의 "추론의 예술" - "말", "추론", "사고" ) - 지적 인지 활동 의 형식, 방법 및 법칙에 대한 과학 , 논리적 언어 의 도움 . 이 지식은 마음에 의해 얻어지기 때문에 논리학은 또한 올바른 사고 의 형식과 법칙에 대한 과학으로 정의됩니다. 사고는 추론 의 형태로 언어에서 형성되기 때문에 특별한 경우는 증명논박 이며, 논리는 때때로 추론 방법의 과학 또는 증명 및 논박 방법의 과학으로 정의됩니다. 과학으로서의 논리학은 감각적 경험 이 아니라 앞서 얻은 지식을 통해 간접적으로 인지과정에서 진리를 성취하는 방법을 연구하므로 추론적 지식 을 얻는 방법의 과학이라고도 정의할 수 있다.

논리 법칙과 논리적 사고 방법의 적용을 통해 얻은 추론적 지식 은 진리를 달성하고 주변 세계의 현상과 사건에 대한 더 깊은 지식을 얻기 위해 얻은 지식을 적용하는 것을 목표로 하는 모든 논리적 행동의 목표입니다.

논리학의 주요 임무 중 하나는 연구 중인 생각 주제와 그 관계의 뉘앙스를 더 잘 이해하기 위해 전제( 정확한 추론 )에서 결론에 도달하고 생각 주제에 대한 진정한 지식을 얻는 방법을 결정하는 것입니다 고려 중인 현상의 다른 측면과 함께.

논리는 거의 모든 과학의 도구 중 하나입니다.

 
denis_orlov :

그것도 나쁘지는 않지만, 그래도 브랜치의 이름을 명확히 하거나 이미 로직을 공부하기 시작하는 것이 좋을 것입니다.

2번은 어떻게 해야할지 모르겠네요...


나에게 어땠는지 공유할 수 있습니다.

논리를 과학으로 이해하려고 노력하는 데 3년이 걸렸습니다. 그들은 여전히 본질을 파악할 수 없다고 말합니다. 어떤 종류의 논리가 필요합니까? 그런 다음 그녀는 거의 쓸모없는 템플릿 집합을 나타냈지만 여기에서 뭔가 잘못되었다고 느꼈습니다. 그래서 계속 주의 깊게 읽고 그녀의 계획에 따라 추론하고 수식을 통해 모든 종류의 논리적 문제를 해결하려고 했습니다. 그런 다음 파란색에서 볼트처럼 갑자기 떠올랐습니다 ... 그런 다음이 분야의 전체 가치가 마침내 나에게 떠올랐을 때 친구들을 논리 연구에 적극적으로 참여시키기 시작했습니다. 나는 말 그대로 논리에 불타올랐다. 친구들은 모든 논리적인 유머, 딱딱한 결론의 아름다움, 역설의 불가해성에 적극적으로 이끌렸고 내가 주변에 있는 동안 그들은 적어도 무언가를 배웠습니다. 그러나 그들 자신과 1:1로 남겨진 그들은 숯불처럼 시들어갔습니다. 그들 중 누구도 자신의 영혼에 불을 붙인 적이 없습니다. 그런 다음 나는 그들이 나에게 관심이 있다는 것을 깨달았지만 더 이상은 아니었습니다. 그들 중 누구도 이 과학에 입문하도록 강요하는 등 뒤에서 추진력을 갖고 있지 않았습니다. 그리고 나서 저는 정말로 논리학을 공부한 사람들을 저를 위해 두 부류로 나누었습니다. 그들 모두는 그것을 공부하도록 강요 받았다. 여기에서 갈 곳이 없습니다. 대학에서 논리학을 가르치는 일부 교수들은 논리학이 학생들에게 매우 어렵다고 말합니다. 그러나 그들 자신은 이 훈련이 그들에게 얼마나 어려웠는지, 그리고 그것이 얼마나 쉽게 적용되는지에 대해 놀랐습니다. 글쎄, 나는이 모든 강제성을 공부하는 과정에서 논리와 사랑에 빠진 사람들과 시험을 통과하고 잊어 버린 사람들을 위해 두 가지 클래스로 나눴습니다. 그 연인과 이야기하는 것은 항상 즐겁습니다. 사람은 당신을 완벽하게 이해합니다. 그러나 때로는 건망증이있는 사람들에게는 어렵습니다. 그런 사람들은 자신의 죽음으로 러시안 룰렛을합니다. 사실은 미리 계획된 계획에 따라서만 의식적으로 행동하는 것이 가능하다는 것입니다. 이것이 당신의 삶에 질서를 가져다주는 유일한 방법입니다. 행동 계획을 세우는 것은 사고 과정입니다. 제대로 진행되지 않으면 결과는 무가치합니다. 머리에 혼돈이 있는 사람은 그의 일에 혼란이 있습니다. 그래서 생각이 우리의 삶을 지배한다는 것이 밝혀졌습니다. 그리고 여기서 논리를 거부하는 것은 무덤으로 가는 지름길입니다.

:) 충분합니다. 아마도 그렇지 않으면 그러한 것들에 대해 몇 시간 동안 이야기할 수 있고 결국 이 스레드의 주제에서 멀어지게 할 것입니다.

추신

나는 한 번 내 인생에서 너무 어려운 상황에 처해 무엇을해야할지 몰랐습니다. 모든 계획과 희망이 무너졌습니다. 끔찍하게 아팠다. 나는 그저 절망감에 목이 메었다. 그제서야 상황을 완전히 파악할 때까지 내 인생을 어떻게 해야 할지, 주변 사람들과 어떻게 관계를 맺어야 할지 결정하지 않기로 했다. 나는 논리와 같은 과학이 있다는 것을 책에서 알았다. 그제서야 내 결론이 정확하도록 마스터해야 한다고 결정했습니다. 삶의 상황의 복잡성과 고통은 나에게 자극을 주었고 논리뿐만 아니라 다른 많은 과학에서도 내 질문에 대한 답을 찾도록 강요했습니다. 이제 모두 과거가 되었습니다. 내가 왜 당신에게 그것에 대해 이야기 했습니까? 네, 제가 논리를 배우도록 강요하는 동기가 무엇인지 이해하기를 바랐습니다. 말하자면 그는 나 역시 예외가 아니며 강박 속에서도 이 분야를 공부해야 한다는 것을 모범으로 보여주었다. 사실은 대학에서 공부하는 것이 아니라 스스로 공부하는 것입니다.

 
nikost :


간소화할 수 있을 것 같아요

for(int i = 0; i < 한계; i++)
{
// 옵션 three_v1

high=iMA(NULL,0,마침표,0,MODE_EMA,PRICE_HIGH,i);
low=iMA(NULL,0,마침표,0,MODE_EMA,PRICE_LOW,i);
atr=높음-낮음;
MaTDn[i] = 낮음 - atr;
MaTUp[i] = 높음 + atr;
}


원래 코드와 같이 렌더링을 유지하려고 했습니다. ATP는 다르게 간주됩니다. 두 지표를 비교하면 차이점을 직접 알 수 있습니다.