초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 773 1...766767768769770771772773774775776777778779780...1503 새 코멘트 0Aleksandr0 2017.08.22 11:46 #7721 고맙습니다. 방금 등록했는데 아직 포럼이 어떻게 작동하는지 모르겠습니다. --- 2017.08.22 12:38 #7722 0Aleksandr0 : 나는 WinAPI에서 아무것도 이해하지 못합니다. 여기서 무엇이 잘못되었습니까? 스크립트의 형태로 당신의 시도를 볼 수 있습니다 Artyom Trishkin 2017.08.22 12:52 #7723 0Aleksandr0 : 나는 그것을 고문의 기능으로 가지고 있습니다. 여기에 코드의 시작이 있습니다. 기능 그 자체다 나머지 어드바이저는 잘 작동하며 함수에 있는 변수는 코드의 다른 곳에서는 사용되지 않습니다. SetClipboardData( CF_UNICODETEXT, hMem ) 행에서 터미널이 충돌합니다. // 문자열이 있는 메모리를 버퍼로 전송 0Aleksandr0 2017.08.22 12:55 #7724 Artyom Trishkin : 알았어, 수정해) 0Aleksandr0 2017.08.22 12:55 #7725 o_o : 스크립트의 형태로 당신의 시도를 볼 수 있습니다 나는 그것을 고문의 기능으로 가지고 있습니다. 여기에 코드의 시작이 있습니다. #define CF_UNICODETEXT 13 #define GHND 0x0042 #import "User32.dll" int OpenClipboard( uint ); int EmptyClipboard(); int CloseClipboard(); uint SetClipboardData( uint uFormat, uint hMem ); #import "Kernel32.dll" uint GlobalAlloc( uint uFlags, uint dwBytes ); uint GlobalLock( uint hMem ); int GlobalUnlock( uint hMem ); #import "msvcrt.dll" uint memcpy( uint &dest, string src, uint count ); #import string text = "AAA" ; 기능 그 자체다 void OutClipboard() { uint hwnd = ( uint ) ChartGetInteger ( 0 , CHART_WINDOW_HANDLE ); int strSize = StringLen ( text ) * 2 + 2 ; // Получаем размер строки в байтах if ( OpenClipboard( hwnd ) ) // Открываем буфер { EmptyClipboard(); // Очищаем буфер uint hMem = GlobalAlloc( GHND, strSize ); // Выделяем память uint pMem = GlobalLock( hMem ); // Получаем адрес выделенной памяти memcpy( pMem, text, strSize ); // Копируем строку в память GlobalUnlock( hMem ); SetClipboardData( CF_UNICODETEXT, hMem ); // Передаём память со строкой в буфер CloseClipboard(); // Закрываем буфер } } 나머지 어드바이저는 잘 작동하며 함수에 있는 변수는 코드의 다른 곳에서는 사용되지 않습니다. SetClipboardData( CF_UNICODETEXT, hMem ) 행에서 터미널이 충돌합니다. // 문자열이 있는 메모리를 버퍼로 전송 0Aleksandr0 2017.08.22 14:57 #7726 //+------------------------------------------------------------------+ //| Clipboard.mq4 | //| ПавелИванович(api) | //| p231970@hotmail.com | //| Перенос на MQL5 и доработка unicode - Сергеев Алексей (sergeev) | //| profy.mql@gmail.com | //+------------------------------------------------------------------+ #property version "1.00" #property description "Getting contents of the clipboard" #import "user32.dll" bool OpenClipboard( int hwnd); int GetClipboardData( int uFormat); bool CloseClipboard(); int GetAncestor( long hWnd, int gaFlags); int GetAncestor( int hWnd, int gaFlags); #import "kernel32.dll" int GlobalLock( int hMem); bool GlobalUnlock( int hMem); string lstrcatW( int dst, string src); #import //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ int OnStart () { int hMain; string clip= "" ; //--- if ( _IsX64 ) hMain=GetAncestor( ChartGetInteger ( ChartID (), CHART_WINDOW_HANDLE ), 2 ); else hMain=GetAncestor(( int ) ChartGetInteger ( ChartID (), CHART_WINDOW_HANDLE ), 2 ); //--- if (OpenClipboard(hMain)) { int hglb=GetClipboardData( 1 /*CF_TEXT*/ ); if (hglb!= 0 ) { int lptstr=GlobalLock(hglb); if (lptstr!= 0 ) { clip=lstrcatW(lptstr, "" ); GlobalUnlock(hglb); } } CloseClipboard(); } // translate ANSI to UNICODE ushort chW; uchar chA; string rez; for ( int i= 0 ; i< StringLen (clip); i++) { chW= StringGetCharacter (clip, i); chA= uchar (chW& 255 ); rez=rez+ CharToString (chA); chA= uchar (chW>> 8 & 255 ); rez=rez+ CharToString (chA); } MessageBox ( "Clipboard: \n" +rez, "Clipboard" ); return ( 0 ); } //+------------------------------------------------------------------+ 그런 스크립트를 찾았습니다. 이론상 버퍼를 읽고 터미널 창에 값을 표시합니다. 이 스크립트도 작동하지 않습니다. 터미널을 죽이지는 않지만 창에 아무 것도 표시하지 않습니다. 버퍼에는 일종의 수수께끼가 있습니다. 지금은 경고에 데이터를 출력하는 것으로 제한하겠습니다. 거기에서 "수동" 작업을 피하고 싶었지만 ctrl + c를 복사할 수 있습니다. Koldun Zloy 2017.08.22 15:33 #7727 그 예는 MT4에 대한 것이므로 비트 깊이는 고려되지 않았습니다. 다음은 모든 플랫폼용입니다. #ifdef __MQL5__ #define _WIN64 // Только для 64-разрядного терминала! #endif #include <WinDef.mqh> #define CF_UNICODETEXT 13 #define GHND 0x0042 #import "User32.dll" BOOL OpenClipboard( HWND ); BOOL EmptyClipboard(); BOOL CloseClipboard(); HANDLE SetClipboardData( uint uFormat, HANDLE hMem ); #import "Kernel32.dll" HANDLE GlobalAlloc( uint uFlags, size_t dwBytes ); LPVOID GlobalLock( HANDLE hMem ); BOOL GlobalUnlock( HANDLE hMem ); #import "msvcrt.dll" PVOID memcpy( PVOID dest, string src, size_t count ); #import string str = "АБВГД" ; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart () { HWND hwnd = (HWND) ChartGetInteger ( 0 , CHART_WINDOW_HANDLE ); size_t strSize = StringLen ( str ) * 2 + 2 ; // Получаем размер строки в байтах if ( OpenClipboard( hwnd ) ) // Открываем буфер { EmptyClipboard(); // Очищаем буфер HANDLE hMem = GlobalAlloc( GHND, strSize ); // Выделяем память PVOID pMem = GlobalLock( hMem ); // Получаем адрес выделенной памяти memcpy( pMem, str, strSize ); // Копируем строку в память GlobalUnlock( hMem ); SetClipboardData( CF_UNICODETEXT, hMem ); // Передаём память со строкой в буфер CloseClipboard(); // Закрываем буфер } } //+------------------------------------------------------------------+ 파일: WinDef.mqh 1 kb 0Aleksandr0 2017.08.22 15:51 #7728 Koldun Zloy : 그 예는 MT4에 대한 것이므로 비트 깊이는 고려되지 않았습니다. 다음은 모든 플랫폼용입니다. 특히 버퍼를 읽는 두 번째 스크립트를 볼 때 비트 깊이에 대한 의심이 있었습니다. 그게 바로 고칠 수 있는 방법이에요, 적어도 한 달 안에는 도퍼를 할게요)) 많은 시간을 절약해 주셔서 대단히 감사합니다.) 즉시 어드바이저에 통합하겠습니다) Aleksey Vyazmikin 2017.08.22 22:55 #7729 MT5에서 코드를 다시 작성할 수 있도록 도와주세요 - 주문을 전혀 이해하지 못합니다 :( //+------------------------------------------------------------------+ //| Расчёт статистик | //+------------------------------------------------------------------+ bool CTradeStatistics::Calculate( const bool _to_log= false , const double _init_balance= 0.0 ) { //--- if (_init_balance> 0 .) m_init_deposit=_init_balance; else { m_init_deposit= TesterStatistics ( STAT_INITIAL_DEPOSIT ); double curr_balance=m_init_deposit; if (!m_balance_arr.Add(curr_balance)) { if (_to_log) Print ( "Ошибка добавления значения депозита." ); return false ; } //--- int orders_num= OrdersHistoryTotal (); if (orders_num< 1 ) { if (_to_log) Print ( "Нет ордеров в истории." ); return false ; } //--- собрать данные for ( int ord_idx= 0 ;ord_idx<orders_num;ord_idx++) if ( OrderSelect (ord_idx, SELECT_BY_POS , MODE_HISTORY )) { ENUM_ORDER_TYPE curr_ord_type=( ENUM_ORDER_TYPE ) OrderType (); if ((curr_ord_type== ORDER_TYPE_BUY ) || (curr_ord_type== ORDER_TYPE_SELL )) if ( OrderCloseTime ()> 0 ) { //int ord_ticket=OrderTicket();// del //--- добавить профит ордера double curr_ord_profit= OrderProfit ()- OrderCommission ()+ OrderSwap (); if (!m_orders_arr.Add(curr_ord_profit)) { if (_to_log) Print ( "Ошибка добавления значения профита." ); return false ; } //--- добавить текущее значение баланса curr_balance+=curr_ord_profit; if (!m_balance_arr.Add(curr_balance)) { if (_to_log) Print ( "Ошибка добавления значения депозита." ); return false ; } } } } 컴파일 오류: 'SELECT_BY_POS' - 선언되지 않은 식별자 KamikadzeStatistics.mqh 257 33 'MODE_HISTORY' - 선언되지 않은 식별자 KamikadzeStatistics.mqh 257 47 'OrderSelect' - 잘못된 매개변수 개수 KamikadzeStatistics.mqh 257 열셋 'OrderType' - 함수 가 정의되지 않았습니다. KamikadzeStatistics.mqh 259 60 'OrderCloseTime' - 함수가 정의되지 않았습니다. KamikadzeStatistics.mqh 261 십구 'OrderProfit' - 함수가 정의되지 않았습니다. KamikadzeStatistics.mqh 265 42 0Aleksandr0 2017.08.23 00:25 #7730 Aleksey Vyazmikin : MT5에서 코드를 다시 작성할 수 있도록 도와주세요. 주문을 전혀 이해하지 못합니다 :( 컴파일 오류: 'SELECT_BY_POS' - 선언되지 않은 식별자 KamikadzeStatistics.mqh 257 33 'MODE_HISTORY' - 선언되지 않은 식별자 KamikadzeStatistics.mqh 257 47 'OrderSelect' - 잘못된 매개변수 개수 KamikadzeStatistics.mqh 257 열셋 'OrderType' - 함수 가 정의되지 않았습니다. KamikadzeStatistics.mqh 259 60 'OrderCloseTime' - 함수가 정의되지 않았습니다. KamikadzeStatistics.mqh 261 십구 'OrderProfit' - 함수가 정의되지 않았습니다. KamikadzeStatistics.mqh 265 42 이게 뭔가요? MQL4에서는 잘 생각하지 않습니다. 무엇을 얻을 것인지 알려주시면 MQL5에서 모든 것을 즉시 작성할 수 있습니다. 역사의 손익 계산과 관련된 것 같은? 1...766767768769770771772773774775776777778779780...1503 새 코멘트 사유: 취소 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
고맙습니다.
방금 등록했는데 아직 포럼이 어떻게 작동하는지 모르겠습니다.
나는 WinAPI에서 아무것도 이해하지 못합니다. 여기서 무엇이 잘못되었습니까?
스크립트의 형태로 당신의 시도를 볼 수 있습니다
나는 그것을 고문의 기능으로 가지고 있습니다. 여기에 코드의 시작이 있습니다.
기능 그 자체다
나머지 어드바이저는 잘 작동하며 함수에 있는 변수는 코드의 다른 곳에서는 사용되지 않습니다.
SetClipboardData( CF_UNICODETEXT, hMem ) 행에서 터미널이 충돌합니다. // 문자열이 있는 메모리를 버퍼로 전송
알았어, 수정해)
스크립트의 형태로 당신의 시도를 볼 수 있습니다
나는 그것을 고문의 기능으로 가지고 있습니다. 여기에 코드의 시작이 있습니다.
기능 그 자체다
나머지 어드바이저는 잘 작동하며 함수에 있는 변수는 코드의 다른 곳에서는 사용되지 않습니다.
SetClipboardData( CF_UNICODETEXT, hMem ) 행에서 터미널이 충돌합니다. // 문자열이 있는 메모리를 버퍼로 전송
그런 스크립트를 찾았습니다. 이론상 버퍼를 읽고 터미널 창에 값을 표시합니다. 이 스크립트도 작동하지 않습니다.
터미널을 죽이지는 않지만 창에 아무 것도 표시하지 않습니다.
버퍼에는 일종의 수수께끼가 있습니다. 지금은 경고에 데이터를 출력하는 것으로 제한하겠습니다. 거기에서 "수동" 작업을 피하고 싶었지만 ctrl + c를 복사할 수 있습니다.
그 예는 MT4에 대한 것이므로 비트 깊이는 고려되지 않았습니다.
다음은 모든 플랫폼용입니다.
그 예는 MT4에 대한 것이므로 비트 깊이는 고려되지 않았습니다.
다음은 모든 플랫폼용입니다.
특히 버퍼를 읽는 두 번째 스크립트를 볼 때 비트 깊이에 대한 의심이 있었습니다.
그게 바로 고칠 수 있는 방법이에요, 적어도 한 달 안에는 도퍼를 할게요))
많은 시간을 절약해 주셔서 대단히 감사합니다.)
즉시 어드바이저에 통합하겠습니다)
MT5에서 코드를 다시 작성할 수 있도록 도와주세요 - 주문을 전혀 이해하지 못합니다 :(
컴파일 오류:
'SELECT_BY_POS' - 선언되지 않은 식별자 KamikadzeStatistics.mqh 257 33
'MODE_HISTORY' - 선언되지 않은 식별자 KamikadzeStatistics.mqh 257 47
'OrderSelect' - 잘못된 매개변수 개수 KamikadzeStatistics.mqh 257 열셋
'OrderType' - 함수 가 정의되지 않았습니다. KamikadzeStatistics.mqh 259 60
'OrderCloseTime' - 함수가 정의되지 않았습니다. KamikadzeStatistics.mqh 261 십구
'OrderProfit' - 함수가 정의되지 않았습니다. KamikadzeStatistics.mqh 265 42
MT5에서 코드를 다시 작성할 수 있도록 도와주세요. 주문을 전혀 이해하지 못합니다 :(
컴파일 오류:
'SELECT_BY_POS' - 선언되지 않은 식별자 KamikadzeStatistics.mqh 257 33
'MODE_HISTORY' - 선언되지 않은 식별자 KamikadzeStatistics.mqh 257 47
'OrderSelect' - 잘못된 매개변수 개수 KamikadzeStatistics.mqh 257 열셋
'OrderType' - 함수 가 정의되지 않았습니다. KamikadzeStatistics.mqh 259 60
'OrderCloseTime' - 함수가 정의되지 않았습니다. KamikadzeStatistics.mqh 261 십구
'OrderProfit' - 함수가 정의되지 않았습니다. KamikadzeStatistics.mqh 265 42
이게 뭔가요? MQL4에서는 잘 생각하지 않습니다. 무엇을 얻을 것인지 알려주시면 MQL5에서 모든 것을 즉시 작성할 수 있습니다.
역사의 손익 계산과 관련된 것 같은?