[아카이브!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 2. - 페이지 454

 
smart :


템플릿에 어떤 지표가 있는지 어떻게 알 수 있습니까? 기존 템플릿을 넣었지만 모든 지표가 표시되는 것은 아닙니다. 템플릿에 포함된 지표의 이름을 잊어버렸습니다. 고맙습니다!


\templates\ 폴더를 열고 템플릿을 찾아 메모장에서 열고 <windows> 태그를 찾아 어떤 지표가 어떤 매개변수로 채워져 있는지 확인합니다.
 
tol64 :

뎀린 20.06.2011 22:02

여러분, 안녕하세요!

그런 질문, 왜 프로그램이 주문의 이익을 포인트로 결정하도록 강제할 수 없습니다. 스레드 도움말

모든 주문을 반복합니다.

for(i = 0; i < OrderHistoryTotal(); i++)

OrderSelect()를 사용하여 특정 기준에 따라 필요한 것을 선택하십시오. 그런 다음 이익 OrderProfit()을 요청합니다. 돈이 깨끗합니다. 그리고 단락에는 다음과 같은 것이 필요합니다.

(OrderProfit()/10)/OrderLots()+(OrderSwap()/10)/OrderLots();

만일을 대비하여 확인하십시오.)))

고마워, 나는 시도 할 것이다
 

주문 댓글에서 정보 쓰기 및 읽기. 주문 주석() .

주문을 열 때 댓글에 잔액과 손절매 수준을 기록합니다. 나는 주문을 열 때 일지를 본다. 괜찮아




잔액 10000.00 . 손절매 1.67740 . 총 문자 수 15 .
그런 다음 문자열 함수를 사용하여 원하는 문자를 선택하고 csv 파일에 씁니다. 그러나 나는이 문제에 부딪쳤다. 정지 손실이 발생하면 이 [sl] 문자가 주석 끝에 추가됩니다.


그리고 문자의 수는 더 이상 15개가 아니라 19개 입니다. 사실은 녹음을 하기 전에 현재 잔고에 몇 글자인지, 가격에 몇 글자인지 확인을 하고 있는 것입니다. 이것은 변수에 할당되어 내가 취해야 하는 기호의 수와 기호를 결정합니다. 그러나 이것은 [sl] 이 이것을 하는 것을 막습니다. 결국 가격에 7 자가 있으면 파일에 1.67740 이 아니라 740 이 기록됩니다. 문제를 해결하는 방법을 이해할 수 없습니다.)) 도와주세요.
 
가장 쉬운 방법은 바로 댓글에 작성하는 것입니다. 데이터 사이에 구분 기호를 넣는 것입니다. 그런 다음 문자열의 길이는 중요하지 않습니다. 구분 기호 사이의 부분 문자열만 빼면 됩니다.
 
granit77 :
가장 쉬운 방법은 바로 댓글에 작성하는 것입니다. 데이터 사이에 구분 기호를 넣는 것입니다. 그런 다음 문자열의 길이는 중요하지 않습니다. 구분 기호 사이의 부분 문자열만 빼면 됩니다.


조금 더 일찍 다음과 같은 간단한 옵션이 제공되었습니다.

 문자열 주석 = OrderComment();
주석 = StringSubstr(주석, 0, 15); // 오른쪽으로 자른다.

방법은 간단하지만 이것도 고민이 많았지만 결정했습니다. )

그러나 모든 것이 한 번에 올바르게 작성되면 [sl] 문자가 추가되지 않습니까? 괜찮으시다면 주문 주석에서 부분 문자열을 추출하는 작은 예를 들어도 될까요?

 
tol64 :


조금 더 일찍 다음과 같은 간단한 옵션이 제공되었습니다.

방법은 간단하지만 이것도 고민이 많았지만 결정했습니다. )

그러나 모든 것이 한 번에 올바르게 작성되면 [sl] 문자가 추가되지 않습니까? 괜찮으시다면 주문 주석에서 부분 문자열을 추출하는 작은 예를 들어도 될까요?

자신을 추가하자. 데이터를 추출하고 싶지만 거기에 추가된 내용과 줄이 얼마나 긴지 걱정할 필요가 없습니다.

   string _comment= "10000.00" + "$" + "1.67740" + "#" ; //строка комментария. "$","#" - разделители (символы,какие понравятся) 
   int lenstring= StringLen (_comment);           //длина строки _comment
   int delim1,delim2;                           //позиции разделителей в строке _comment
   string balans,stoploss;                       //извлекаемые подстроки
   delim1= StringFind ( _comment, "$" , 0 );         //определяем позиции разделителей в строке _comment
   delim2= StringFind ( _comment, "#" , 0 );         //определяем позиции разделителей в строке _comment 
   balans   =   StringSubstr ( _comment, 0 , delim1);                 //извлекли строку баланс
   stoploss =   StringSubstr ( _comment,delim1+ 1 , delim2-delim1- 1 ); //извлекли строку стоплосс 
   Comment ( "|" ,balans, "|" ,stoploss, "|" ); //проверка 
 
모두에게 좋은 하루. 두 대의 다른 컴퓨터가 같은 계정에 연결되어 이 계정에서 동시에 거래할 수 있는 재미있는 상황을 발견했습니다. 원격 컴퓨터 를 제어할 수 있는지, 예를 들어 ext 변수를 변경하거나 최소한 Advisor를 일시 중지할 수 있는지 알려주실 수 있습니까? 미리 감사드립니다. 집에서 터미널을 제어할 수 없는 이상한 상황에 직면했기 때문입니다(예를 들어 저는 직장에 있습니다).
 
granit77 :
자신을 추가하자. 데이터를 추출하고 싶지만 거기에 추가된 내용과 줄 길이는 걱정할 필요가 없습니다.


)) 감사해요. 좋은 예! 반말로 모든 것이 명확합니다. 때때로 매우 부족한 것은 바로 그러한 예입니다.
 
snail09 :

예, 확실히 끓습니다. 모두는 귀하의 ... 질문에만 답변합니다. 어쩌면 당신은 특별히 그렇게 다른 생각을 하고 있습니까?

나에게 누군가가 추세선의 교차점을 가격(직선점에 속함)으로 추적하는 방법을 대답한다면 힌트라도 충분할까요? 가까운 장래에 답을 바라지 않기 때문에 바로 감사합니다. 당신, Zvezda는 플러더입니다, 용서하세요 중재자...


나는 마술사가 아니라 처음 와요. 여덟))))
 
peshihod :

연습이 부족합니다. 프로그램을 시작하는 것은 불가능합니다. 작동하지 않습니다. 악순환: 작동 옵션 없음-> 스킬 없음-> 작동 옵션 없음.

생각해야 합니다.... :-/


주제에 계속됩니다.

배우려면 연습이 필요합니다.

거래 터미널에서 다음을 수행하십시오.
1. 연습 계좌를 개설해야 합니다.
거래 터미널에 계정 데이터를 입력하십시오: 파일->로그인->...
2. 열려 있는 차트를 사용하거나 새 차트를 엽니다: 파일->새_차트->...
3. 최대값 설정: 도구->설정->차트->Max.bars_history->250000
4.분 시간 프레임 설정 : 차트 -> 기간 -> M1_One_분
5.업데이트: 차트->업데이트
6. 오픈 전략 테스터: View->Strategy_tester
다른 모든 창을 닫고(최소화) 차트가 있는 창과 테스터가 있는 창을 남겨둡니다.
------------------
설정의 테스터에서 추가로:
7.심볼: 차트가 열려 있는 심벌을 선택합니다.
8. 모델: 시가에(.....)
<<<이 모델은 프로그램에 OrderSend() 함수가 없는 한 사용해야 합니다.>>>
9.사용일자 : 체크박스를 선택합니다.
날짜: _From:<어제(토,일 제외)>, _to:오늘
10.시각화: 사용 가능한 경우 선택을 취소합니다.
11.기간: M1
12.최적화: 체크 표시가 있는 경우 제거합니다.
----------------------
다음으로 MetaEditor를 엽니다.
13. 메뉴의 거래 터미널에서: 도구->Editor_MetaQuotes_Language
14. 프로그램을 작성합니다. 예를 들면 다음과 같습니다.
//=======================

int i;
int const = 5 ;
int Celoe, Ostatok;
bool flag_Odin_Raz= true ;




int start()
{

if (flag_Odin_Raz== true )
{
//-------------
i= 0 ;
while (i< 22 )
   {
   Celoe=i/ const ;
   Ostatok=MathMod(i, const );
   Print( "При i=" , i, " Celoe=" , Celoe, " Ostatok=" , Ostatok);
   i=i+ 1 ;
   }
//-------------
flag_Odin_Raz= false ;
}
return ( 0 );
}

//===============================

15. MetaEditor 메뉴에서: File->Save_as : 파일 이름 설정, .mq4 확장자 저장, 폴더는 'experts'여야 합니다.
16. MetaEditor 메뉴에서: 파일->컴파일
------------------------------------
설정의 테스터에서 추가로:
17.Advisor: 프로그램 파일의 이름을 찾아 선택합니다.
18.마우스 클릭으로 '시작' 버튼을 누릅니다.
19. 테스터에서 -> 로그
Print() 메시지에 따라 프로그램의 작업 결과를 봅니다.
------------------------------------------
더 나은 보기:
20. 로그의 아무 줄에서나 마우스 오른쪽 버튼 클릭-> 열기
그러면 모든 텍스트 편집기, 메모장, Word 등으로 열 수 있는 *.log 파일이 있는 로그 폴더가 열립니다.

추신
파일이 너무 커서 열 수 있는 텍스트 편집기가 없으면 Windows 도구를 사용하여 이 파일을 삭제하고 거래 터미널에서 '시작' 버튼으로 프로그램을 다시 시작해야 합니다. 테스터 폴더: "...\Install_Dir\tester\logs", 다른 폴더와 혼동하지 마십시오: "...\Install_Dir\logs"

조달청
프로그래밍 방법을 배우려면 필요한 작업 "프로그램"(사람이 소화할 수 있음)의 텍스트 쓰기를 컴퓨터가 이해할 수 있는 기계 명령 언어로 바꾸는 프로그래밍 언어 컴파일러가 필요합니다. 연습 없이는 배울 수 없습니다. Mql4는 별도의 프로그램을 생성하지 않으며 *.mq4는 *.ex4로 변환되어 프로그램 셸에서 실행됩니다.
*.ex4는 직접 실행할 수 없으며 위에서 설명한 알고리즘을 사용하면 이 지점을 우회할 수 있습니다.