초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1432 1...142514261427142814291430143114321433143414351436143714381439...1503 새 코멘트 jeremy10p100 2022.12.22 06:50 #14311 안녕하세요 여러분, 저는 초보자라서 올바른 곳에 글을 쓰고 있기를 바랍니다. 저는 다음과 같이 자금 관리에 도움이 될 수있는 EA를 코딩하려고합니다: "과거 손실 + 현재 손실이 x % 미만일 때 모든 거래 마감" + "세션 / 일 종료까지 즉시 모든 거래 마감". 이 방법을 알고 있거나 도와주실 수 있는 분이 있으면 연락주시면 감사하겠습니다. 감사합니다, 잘 거래하세요 ;) Alexey Petrov 2022.12.22 10:37 #14312 jeremy10p100 # :안녕하세요, 여러분, 저는 초보자이기 때문에 제가 올바른 곳에 글을 쓰고 있기를 바랍니다. 다음과 같은 자금 관리에 도움이 될 수있는 EA를 코딩하려고합니다: "과거 손실 + 현재 손실이 x% 미만일 때 모든 거래 마감" + "세션 / 일 종료까지 즉시 모든 거래 마감". 이 작업을 수행하는 방법을 알고 있거나 도움을 줄 수 있는 사람이 있으면 연락해 주시면 감사하겠습니다. 감사합니다, 잘 거래하세요 ;) 안녕하세요, 시장에서 기성 솔루션을 검색해 보세요 - https://www.mql5.com/fr/search#!keyword=money%20management&module=mql5_module_market 프리랜서에서 맞춤형 솔루션을 주문할 수도 있습니다 - https://www.mql5.com/fr/job Kira27 2022.12.27 11:25 #14313 안녕하세요 여러분!!! 배열에서 데이터베이스에 값을 복사하는 방법을 알려주세요. 다음은 데이터베이스 작업 예제의 코드이며 SALARY 필드에서 배열의 데이터를 데이터베이스에 삽입하려고 할 때 스크립트를 실행할 때 오류가 발생합니다. 그리고 또 다른 질문은 예를 들어 주문 데이터가있는 배열이 있고 상당히 많은 경우이 모든 배열을 데이터베이스의 테이블로 이동하려면 어떻게해야합니까? VALUES (1,'Paul',a,'California',29000.00) --> VALUES (1,'Paul',a,'California',Mass[0]) void OnStart() { double Mass[4]={1,2,5,6}; int a =222; Alert(Mass[3]); string filename="company.sqlite"; //--- создадим или откроем базу данных в общей папке терминалов int db=DatabaseOpen(filename, DATABASE_OPEN_READWRITE | DATABASE_OPEN_CREATE |DATABASE_OPEN_COMMON); if(db==INVALID_HANDLE) { Print("DB: ", filename, " open failed with code ", GetLastError()); return; } //--- если таблица COMPANY существует, то удалим её if(DatabaseTableExists(db, "COMPANY_2")) { //--- удаляем таблицу if(!DatabaseExecute(db, "DROP TABLE COMPANY_2")) { Print("Failed to drop table COMPANY with code ", GetLastError()); DatabaseClose(db); return; } } //--- создаем таблицу COMPANY if(!DatabaseExecute(db, "CREATE TABLE COMPANY_2(" "ID INT PRIMARY KEY NOT NULL," "NAME TEXT NOT NULL," "AGE INT NOT NULL," "ADDRESS CHAR(50)," "SALARY REAL );")) { Print("DB: ", filename, " create table failed with code ", GetLastError()); DatabaseClose(db); return; } //--- вставляем данные в таблицу if(!DatabaseExecute(db, "INSERT INTO COMPANY_2 (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1,'Paul',a,'California',Mass[0]); " "INSERT INTO COMPANY_2 (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2,'Allen',25,'Texas',Mass[1]); " "INSERT INTO COMPANY_2 (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3,'Teddy',a,'Norway',Mass[2]);" "INSERT INTO COMPANY_2 (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4,'Mark',25,'Rich-Mond',65000.00);")) { Print("DB: ", filename, " insert failed with code ", GetLastError()); DatabaseClose(db); return; } //--- создадим запрос и получим хендл на него int request=DatabasePrepare(db, "SELECT * FROM COMPANY_2"); if(request==INVALID_HANDLE) { Print("DB: ", filename, " request failed with code ", GetLastError()); DatabaseClose(db); return; } DatabasePrint( db, // хендл базы данных, полученный в DatabaseOpen "COMPANY_2", // таблица или SQL-запрос 0 // комбинация флагов ); } //+------------------------------------------------------------------+ Yuriy Bykov 2022.12.27 18:05 #14314 예를 들어 이렇게 해 보세요. 대신 if(!DatabaseExecute(db, "INSERT INTO COMPANY_2 (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1,'Paul',a,'California',Mass[0]); " "INSERT INTO COMPANY_2 (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2,'Allen',25,'Texas',Mass[1]); " "INSERT INTO COMPANY_2 (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3,'Teddy',a,'Norway',Mass[2]);" "INSERT INTO COMPANY_2 (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4,'Mark',25,'Rich-Mond',65000.00);")) write if(!DatabaseExecute(db, "INSERT INTO COMPANY_2 (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1,'Paul',a,'California'," + DoubleToString(Mass[0]) + "); " "INSERT INTO COMPANY_2 (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2,'Allen',25,'Texas'," + DoubleToString(Mass[1]) + "); " "INSERT INTO COMPANY_2 (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3,'Teddy',a,'Norway'," + DoubleToString(Mass[2]) + ");" "INSERT INTO COMPANY_2 (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4,'Mark',25,'Rich-Mond',65000.00);")) 이 방법만이 유일한 방법은 아닙니다. Kira27 2022.12.27 20:12 #14315 Yuriy Bykov #:예를 들어 다음과 같이 해보세요. 대신 write 이것이 유일한 방법은 아닙니다. 감사합니다! 작동합니다. 어디에서 읽을 수 있나요? 다른 방법은요? JRandomTrader 2022.12.28 23:21 #14316 lego9955 사용자 지정 캐릭터를 만드는 스크립트를 다시 디자인하는 데 도움을 주세요. 하나의 문자가 아니라 스크립트에 쓰여진 여러 문자를 생성하도록 변경해야 합니다. 예를 들어 3 AB AC AD, 앞으로는이 원칙의 수에 관계없이. 매번 목록에서 다음 기호 이름을 대체하여 순환합니다. 예를 들어 string sNames = "AB,AC,AD"; string aNames[]; void OnStart() { int i; bool ch=true; if(StringSplit(sNames,StringGetCharacter(",",0),aNames) <= 0)return; ResetLastError(); for(i=0; i<ArraySize(aNames); i++) { ch=ch && CustomSymbolCreate(aNames[i]); if(!ch) { PrintFormat("Symbol '%s' : error %d",aNames[i],GetLastError()); break; // При первой ошибке выходим } } if(!ch)return; ... } lego9955 2022.12.29 00:50 #14317 전에 이 작업을 수행한 후 완료했다고 생각하고 게시물을 삭제했습니다. void OnStart() { string arr[]= { "AB", "AC", "AD" }; for(int i=0; i<ArraySize(arr); i++) { bool ch =CustomSymbolCreate(arr[i]); SymbolSelect(arr[i],true); } } 페이지를 새로 고쳤을 때 답글을 달았다는 것을 확인했습니다. 네, 오류 처리가 더 정확합니다. 고마워요! lynxntech 2022.12.29 01:01 #14318 lego9955 오류 처리가 더 정확합니다. 고마워요! ArraySize(arr) 루프 외부에서 ushort로 정의하는 것이 더 정확할 것입니다. JRandomTrader 2022.12.29 01:06 #14319 lynxntech #:루프 외부에서 UINT로 정의하는 것이 더 정확할 것입니다. 저는 이 작업을 자주 수행하지만 컴파일러가 이러한 표준을 최적화할 수 있다고 믿고 싶습니다. Andrei Izosimov 2022.12.29 10:10 #14320 로봇에는 각각 파라미터 세트가 있는 스토캐스틱과 RSI의 두 가지 필터가 있습니다. 하나의 필터만 사용해야 합니다. 즉, 스토캐스틱이 켜져 있으면 RSI는 꺼져 있어야 하고 그 반대의 경우도 마찬가지입니다. 이제 이 작업을 완료했습니다: 스토캐스틱과 RSI에 대한 입력 변수를 만들어 해당 작업을 활성화 및 비활성화했습니다. OnInit 블록( )에서 스토캐스틱과 RSI가 동시에 켜져 있으면 INIT_PARAMETERS_INCORRECT 오류를 확인합니다. OnInit 블록에서 스토캐스틱 이 꺼져 있으면 모든 파라미터가 0이어야 하며, 그렇지 않으면 INIT_PARAMETERS_INCORRECT/ RSI와 마찬가지로 오류가 발생합니다. 목표: 호환되지 않는 선택지를 최적화할 때 시간을 낭비하지 않도록 합니다. 예를 들어 RSI를 선택하면 스토캐스틱 매개변수(과매수/과매도 구간 크기, K, D 기간, 감속, 평활화 방법, 가격)가 검색되지 않도록 합니다. 내 옵션이 작동하지 않는 것으로 밝혀졌습니다. 최적화하는 동안 이러한 변형은 어쨌든 과도하게 최적화 된 것 같아서 최적화의 최종 결과에 영향을 미칩니다. RSI가 활성화 된 경우 최적화 도구가 확률 매개 변수를 검색하지 않도록하는 방법을 알려주세요. 무료로 어드바이저를 작성해 드립니다 포럼을 어지럽히 지 않도록 실시간 예측 시스템 테스트 1...142514261427142814291430143114321433143414351436143714381439...1503 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
안녕하세요 여러분,
저는 초보자라서 올바른 곳에 글을 쓰고 있기를 바랍니다. 저는 다음과 같이 자금 관리에 도움이 될 수있는 EA를 코딩하려고합니다:
"과거 손실 + 현재 손실이 x % 미만일 때 모든 거래 마감" + "세션 / 일 종료까지 즉시 모든 거래 마감".
이 방법을 알고 있거나 도와주실 수 있는 분이 있으면 연락주시면 감사하겠습니다.
감사합니다, 잘 거래하세요 ;)
안녕하세요, 여러분,
저는 초보자이기 때문에 제가 올바른 곳에 글을 쓰고 있기를 바랍니다. 다음과 같은 자금 관리에 도움이 될 수있는 EA를 코딩하려고합니다:
"과거 손실 + 현재 손실이 x% 미만일 때 모든 거래 마감" + "세션 / 일 종료까지 즉시 모든 거래 마감".
이 작업을 수행하는 방법을 알고 있거나 도움을 줄 수 있는 사람이 있으면 연락해 주시면 감사하겠습니다.
감사합니다, 잘 거래하세요 ;)
안녕하세요,
시장에서 기성 솔루션을 검색해 보세요 - https://www.mql5.com/fr/search#!keyword=money%20management&module=mql5_module_market
프리랜서에서 맞춤형 솔루션을 주문할 수도 있습니다 - https://www.mql5.com/fr/job
예를 들어 이렇게 해 보세요.
대신
write
이 방법만이 유일한 방법은 아닙니다.
예를 들어 다음과 같이 해보세요.
대신
write
이것이 유일한 방법은 아닙니다.
감사합니다! 작동합니다. 어디에서 읽을 수 있나요? 다른 방법은요?
하나의 문자가 아니라 스크립트에 쓰여진 여러 문자를 생성하도록 변경해야 합니다.
예를 들어 3 AB AC AD, 앞으로는이 원칙의 수에 관계없이.
매번 목록에서 다음 기호 이름을 대체하여 순환합니다.
예를 들어
전에 이 작업을 수행한 후 완료했다고 생각하고 게시물을 삭제했습니다.
페이지를 새로 고쳤을 때 답글을 달았다는 것을 확인했습니다. 네, 오류 처리가 더 정확합니다. 고마워요!
ArraySize(arr)
루프 외부에서 ushort로 정의하는 것이 더 정확할 것입니다.
루프 외부에서 UINT로 정의하는 것이 더 정확할 것입니다.
저는 이 작업을 자주 수행하지만 컴파일러가 이러한 표준을 최적화할 수 있다고 믿고 싶습니다.
로봇에는 각각 파라미터 세트가 있는 스토캐스틱과 RSI의 두 가지 필터가 있습니다. 하나의 필터만 사용해야 합니다. 즉, 스토캐스틱이 켜져 있으면 RSI는 꺼져 있어야 하고 그 반대의 경우도 마찬가지입니다.
이제 이 작업을 완료했습니다:
목표:
RSI가 활성화 된 경우 최적화 도구가 확률 매개 변수를 검색하지 않도록하는 방법을 알려주세요.