5 wmz에 대해 하나의 스크립트를 실행합니다. - 페이지 16 1...91011121314151617 새 코멘트 Profitabl 2010.09.11 08:16 #151 그리고 포지션이 닫히지 않은 이유를 찾고 있는데, 포지션 클로징 블록이 맞을 때입니다. 어떻게 하면 맞을까? Leonid Borsky 2010.09.11 08:28 #152 =================== 닫는 블록을 삭제합니다. 뭐가 정답이야... 다음 줄 앞에 다음 코드를 붙여넣습니다. if(total<1){ // 오픈 포지션 이 없는 경우 //============== Закрытие позиций ============================= if(total>=1){ //если "есть открытых позиций" //---------------------------------------------------------------------- for ( int v= 0 ; v< OrdersTotal (); v++) { if ( OrderSelect (v, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()== Symbol ()) { //----------------------------------------------------- if (OrderType() == OP_BUY) { //бай позиция if ( DayOfWeek()== 1 && Hour() == 22 ) { OrderClose(OrderTicket(),OrderLots(),Bid, 3 , Green ); // закрываем позицию return ( 0 ); // выходим } } //-------------------------------------------------------- if (OrderType() == OP_SELL) { //селл позиция if ( DayOfWeek()== 1 && Hour() == 22 ) { OrderClose(OrderTicket(),OrderLots(),Ask, 3 , Green ); // закрываем позицию return ( 0 ); // выходим } } //------------------------------------------------------- } // Symbol() } // select } //total } //если "есть открытых позиций" //============= конец блока закрытия ===================== Leonid Borsky 2010.09.11 08:38 #153 위치를 열 때 GetLastError() 오류 함수를 호출하지만 어떤 이유로 코드에 이에 대한 참조가 없습니다! 왜 내 코드에서 그것을 던졌습니까? - //-- Подключаемые модули -- #include < stderror.mqh > #include < stdlib.mqh > Profitabl 2010.09.11 08:39 #154 테스트 중이지만 위치 22에서 닫히지 않습니다. 나는 아무것도 버리지 않았습니다. 이것은 고문이 테스트 중이지만 당신과 거래하지 않기 때문에 이것은 새로운 코드입니다. extern double Lots = 0.1 ; extern double TakeProfit = 120 ; extern double StopLoss = 120 ; //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int cnt, ticket, total; static int prevtime = 0 ; if (Time[ 0 ] == prevtime) return ( 0 ); //если появился новый бар prevtime = Time[ 0 ]; // начинаем работу //+------------------------------------------------------------------+ //| Открытие позиций понедельника | //+------------------------------------------------------------------+ if ( DayOfWeek()== 5 ){ //если сегодня вечер пятницы if ( Hour() == 23 ) { //если - 22 часа терминального времени // BUY if ( Close[ 1 ]<= Open[ 24 ] && Close[ 23 ]<=Open[ 48 ] && Close[ 47 ]<=Open[ 72 ]) { ticket= OrderSend ( Symbol (),OP_BUY,Lots,Ask, 3 ,Bid- 40 * Point ,Ask+ 120 * Point , "Regulest" , 0 , 0 , Green );} if (ticket < 0 ) { Print ( "Ошибка открытия ордера BUY #" , GetLastError ()); Sleep ( 10000 ); prevtime = Time[ 1 ]; return ( 0 ); }} // SELL if ( DayOfWeek()== 5 ){ //если сегодня вечер пятницы if ( Hour() == 23 ) { //если - 22 часа терминального времени if ( Close[ 1 ]>= Open[ 24 ] && Close[ 23 ]<=Open[ 48 ] && Close[ 47 ]<=Open[ 72 ]) { ticket= OrderSend ( Symbol (),OP_SELL,Lots,Bid, 3 ,Ask+ 40 * Point ,Bid- 100 * Point , "Regulest" , 0 , 0 , Red ); if (ticket < 0 ) { Print ( "Ошибка открытия ордера SELL #" , GetLastError ()); Sleep ( 10000 ); prevtime = Time[ 1 ]; return ( 0 ); } } } //+------------------------------------------------------------------+ //| Закрытие позиций | //+------------------------------------------------------------------+ if (total>= 1 ){ //если "есть открытых позиций" //---------------------------------------------------------------------- for ( int v= 0 ; v< OrdersTotal (); v++) { if ( OrderSelect (v, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()== Symbol ()) { //----------------------------------------------------- if (OrderType() == OP_BUY) { //бай позиция if ( DayOfWeek()== 1 && Hour() == 22 ) { OrderClose(OrderTicket(),OrderLots(),Bid, 3 , Green ); // закрываем позицию return ( 0 ); // выходим } } //-------------------------------------------------------- if (OrderType() == OP_SELL) { //селл позиция if ( DayOfWeek()== 1 && Hour() == 22 ) { OrderClose(OrderTicket(),OrderLots(),Ask, 3 , Green ); // закрываем позицию return ( 0 ); // выходим } } //------------------------------------------------------- } // Symbol() } // select } //total } //если "есть открытых позиций" } return ( 0 ); }} Leonid Borsky 2010.09.11 08:53 #155 extern double Lots = 0.1 ; extern double TakeProfit = 120 ; extern double StopLoss = 120 ; //-- Подключаемые модули -- #include <stderror.mqh> #include <stdlib.mqh> //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int cnt, ticket, total; static int prevtime = 0 ; if (Time[ 0 ] == prevtime) return ( 0 ); //если появился новый бар prevtime = Time[ 0 ]; // начинаем работу //+------------------------------------------------------------------+ //| Открытие позиций понедельника | //+------------------------------------------------------------------+ if (total< 1 ){ //если нет открытых позиций" if ( DayOfWeek()== 5 ){ //если сегодня вечер пятницы if ( Hour() == 23 ) { //если - 22 часа терминального времени //--------------------------------------------- // BUY--------------------- if ( Close[ 1 ]<= Open[ 24 ] && Close[ 23 ]<=Open[ 48 ] && Close[ 47 ]<=Open[ 72 ]) { ticket= OrderSend ( Symbol (),OP_BUY,Lots,Ask, 3 ,Bid- 40 * Point ,Ask+ 120 * Point , "Regulest" , 0 , 0 , Green ); if (ticket < 0 ) { Print ( "Ошибка открытия ордера BUY #" , GetLastError ()); Sleep ( 10000 ); prevtime = Time[ 1 ]; return ( 0 ); } } // SELL----------------------- if ( Close[ 1 ]>= Open[ 24 ] && Close[ 23 ]<=Open[ 48 ] && Close[ 47 ]<=Open[ 72 ]) { ticket= OrderSend ( Symbol (),OP_SELL,Lots,Bid, 3 ,Ask+ 40 * Point ,Bid- 100 * Point , "Regulest" , 0 , 0 , Red ); if (ticket < 0 ) { Print ( "Ошибка открытия ордера SELL #" , GetLastError ()); Sleep ( 10000 ); prevtime = Time[ 1 ]; return ( 0 ); } } //----------------------------- } } } // если нет открытых позиций //+------------------------------------------------------------------+ //| Закрытие позиций | //+------------------------------------------------------------------+ if (total>= 1 ){ //если "есть открытых позиций" //---------------------------------------------------------------------- for ( int v= 0 ; v< OrdersTotal (); v++) { if ( OrderSelect (v, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()== Symbol ()) { //----------------------------------------------------- if (OrderType() == OP_BUY) { //бай позиция if ( DayOfWeek()== 1 && Hour() == 22 ) { OrderClose(OrderTicket(),OrderLots(),Bid, 3 , Green ); // закрываем позицию return ( 0 ); // выходим } } //-------------------------------------------------------- if (OrderType() == OP_SELL) { //селл позиция if ( DayOfWeek()== 1 && Hour() == 22 ) { OrderClose(OrderTicket(),OrderLots(),Ask, 3 , Green ); // закрываем позицию return ( 0 ); // выходим } } //------------------------------------------------------- } // Symbol() } // select } //total } //если "есть открытых позиций" // return ( 0 ); } 이렇게 시도하십시오. 그리고 매수와 매도를 위한 오프닝 조건을 주의 깊게 확인하십시오. ( 닫기[ 1 ]>= 열기[ 24 ] && ..... ......) Profitabl 2010.09.11 09:03 #156 이상하게도 우리는 MT4 이동 평균 배포판의 기본 EA 코드를 다시 만들었습니다. 테스터에서 거래가 테스트되고 22시에 마감되며 고문이 자신을 거래할지 여부는 모르겠습니다. 필요한 경우 코드가 있습니다. //+------------------------------------------------------------------+ //| Moving Average.mq4 | //| Copyright © 2005, MetaQuotes Software Corp. | //| http://www.metaquotes.net/ | //+------------------------------------------------------------------+ #define MAGICMA 20050610 extern double Lots = 0.1 ; extern double TakeProfit = 120 ; extern double StopLoss = 120 ; //extern double MaximumRisk = 0.02; //extern double DecreaseFactor = 3; //extern double MovingPeriod = 12; //extern double MovingShift = 6; //+------------------------------------------------------------------+ //| Calculate open positions | //+------------------------------------------------------------------+ int CalculateCurrentOrders( string symbol) { int buys= 0 ,sells= 0 ; //---- for ( int i= 0 ;i< OrdersTotal ();i++) { if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)==false) break ; if (OrderSymbol()== Symbol () && OrderMagicNumber()==MAGICMA) { if (OrderType()==OP_BUY) buys++; if (OrderType()==OP_SELL) sells++; } } //---- return orders volume if (buys> 0 ) return (buys); else return (-sells); } //+------------------------------------------------------------------+ //| Check for open order conditions | //+------------------------------------------------------------------+ void CheckForOpen() { int res; if (Volume[ 0 ]> 1 ) return ; if ( DayOfWeek()== 5 ){ //если сегодня вечер пятницы if ( Hour() == 23 ) { //если - 22 часа терминального времени if ( Close[ 1 ]>= Open[ 24 ] && Close[ 23 ]<=Open[ 48 ] && Close[ 47 ]<=Open[ 72 ]) { res= OrderSend ( Symbol (),OP_SELL,Lots,Bid, 3 ,Ask+ 40 * Point ,Bid- 100 * Point , "Regulest" ,MAGICMA, 0 , Red ); return ; }}} //---- buy conditions if ( DayOfWeek()== 5 ){ //если сегодня вечер пятницы if ( Hour() == 23 ) { //если - 22 часа терминального времени if ( Close[ 1 ]<= Open[ 24 ] && Close[ 23 ]<=Open[ 48 ] && Close[ 47 ]<=Open[ 72 ]) { res= OrderSend ( Symbol (),OP_BUY,Lots,Ask, 3 ,Bid- 40 * Point ,Ask+ 120 * Point , "Regulest" ,MAGICMA, 0 , Blue ); return ; }}} //---- } //+------------------------------------------------------------------+ //| Check for close order conditions | //+------------------------------------------------------------------+ void CheckForClose() { double ma; //---- go trading only for first tiks of new bar if (Volume[ 0 ]> 1 ) return ; for ( int i= 0 ;i< OrdersTotal ();i++) { if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)==false) break ; if (OrderMagicNumber()!=MAGICMA || OrderSymbol()!= Symbol ()) continue ; //---- check order type if (OrderType()==OP_BUY) { if ( DayOfWeek()== 1 && Hour() == 22 ) OrderClose(OrderTicket(),OrderLots(),Bid, 3 , White ); break ; } if (OrderType()==OP_SELL) { if ( DayOfWeek()== 1 && Hour() == 22 ) OrderClose(OrderTicket(),OrderLots(),Ask, 3 , White ); break ; } } //---- } //+------------------------------------------------------------------+ //| Start function | //+------------------------------------------------------------------+ void start() { //---- check for history and trading if ( Bars < 100 || IsTradeAllowed()==false) return ; //---- calculate open orders by current symbol if (CalculateCurrentOrders( Symbol ())== 0 ) CheckForOpen(); else CheckForClose(); //---- } //+------------------------------------------------------------------+ Profitabl 2010.09.11 09:08 #157 leonid553 : 이렇게 시도하십시오. 그리고 매수와 매도를 위한 오프닝 조건을 주의 깊게 확인하십시오. ( 닫기[ 1 ]>= 열기[ 24 ] && ..... ......) 이걸 버리세요. 감사합니다. 모든 것이 이동 평균 코드로 해결되었습니다. 그가 월요일에 거래를 성사시키지 않으면 우리는 논의를 계속할 것입니다. 내 기술 분석 방법이 가치가 있기를 바랍니다. 4명의 고문 GBPUSD, EURUSD, USDJPY, USDCHF는 한 CHF로 판단하여 좋은 수익을 가져올 수 있습니다. Leonid Borsky 2010.09.11 09:14 #158 Profitabl : 이상하게도 우리는 MT4 Moving Aviagre 배포판의 기본 EA 코드를 다시 만들 수 있었습니다. 테스터에서 거래가 테스트되고 22시에 마감되며 고문이 자신을 거래할지 여부는 모르겠습니다. 필요한 경우 코드가 있습니다. 안타깝게도 이 EA는 테스터에서만 올바르게 작동합니다.... 온라인 - 신호의 절반 이상이 놓칠 것입니다. 이 조건 때문에: if (Volume[ 0 ]> 1 ) return ; Profitabl 2010.09.11 09:26 #159 어떻게 해야 하는지, 어떻게 변경하는지, 아니면 그냥 삭제해도 됩니다. Movinga 매개변수가 더 이상 코드에 없기 때문입니다. 그러나 Moving은 이 코드로 모든 트랜잭션을 어떻게 수행합니까? 모든 거래가 수행되어야하며 그 수가 많지 않고 하루에 한 번, 어드바이저가 23:00에 가격이 열린 모습부터 30분 이내에 20-40번의 시도를 해야 하고 포지션을 열다 그것은 귀하의 코드를 사용하여 고문이 화요일에 포지션을 열고 목요일과 금요일에 틱을 건너뛸 수 있음을 의미합니다 Vitaliy 2010.09.11 09:45 #160 Profitabl : 어떻게 해야 하는지, 어떻게 변경하는지, 아니면 그냥 삭제해도 됩니다. Movinga 매개변수가 더 이상 코드에 없기 때문입니다. 그러나 Moving은 이 코드로 모든 트랜잭션을 어떻게 수행합니까? 모든 거래가 수행되어야하며 그 수가 많지 않고 하루에 한 번, 어드바이저가 23:00에 가격이 열린 모습부터 30분 이내에 20-40번의 시도를 해야 하고 포지션을 열다 그것은 귀하의 코드를 사용하여 고문이 화요일에 포지션을 열고 목요일과 금요일에 틱을 건너뛸 수 있음을 의미합니다 예, 이 줄을 모두 제거하십시오. 고문의 논리에 따르면 필요하지 않습니다. 1...91011121314151617 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
그리고 포지션이 닫히지 않은 이유를 찾고 있는데, 포지션 클로징 블록이 맞을 때입니다. 어떻게 하면 맞을까?
===================
닫는 블록을 삭제합니다. 뭐가 정답이야...
다음 줄 앞에 다음 코드를 붙여넣습니다.
if(total<1){ // 오픈 포지션 이 없는 경우
위치를 열 때 GetLastError() 오류 함수를 호출하지만 어떤 이유로 코드에 이에 대한 참조가 없습니다!
왜 내 코드에서 그것을 던졌습니까? -
테스트 중이지만 위치 22에서 닫히지 않습니다. 나는 아무것도 버리지 않았습니다. 이것은 고문이 테스트 중이지만 당신과 거래하지 않기 때문에 이것은 새로운 코드입니다.
이렇게 시도하십시오. 그리고 매수와 매도를 위한 오프닝 조건을 주의 깊게 확인하십시오.
( 닫기[ 1 ]>= 열기[ 24 ] && ..... ......)
이상하게도 우리는 MT4 이동 평균 배포판의 기본 EA 코드를 다시 만들었습니다. 테스터에서 거래가 테스트되고 22시에 마감되며 고문이 자신을 거래할지 여부는 모르겠습니다. 필요한 경우 코드가 있습니다.
이렇게 시도하십시오. 그리고 매수와 매도를 위한 오프닝 조건을 주의 깊게 확인하십시오.
( 닫기[ 1 ]>= 열기[ 24 ] && ..... ......)
이걸 버리세요. 감사합니다. 모든 것이 이동 평균 코드로 해결되었습니다. 그가 월요일에 거래를 성사시키지 않으면 우리는 논의를 계속할 것입니다. 내 기술 분석 방법이 가치가 있기를 바랍니다. 4명의 고문 GBPUSD, EURUSD, USDJPY, USDCHF는 한 CHF로 판단하여 좋은 수익을 가져올 수 있습니다.
이상하게도 우리는 MT4 Moving Aviagre 배포판의 기본 EA 코드를 다시 만들 수 있었습니다. 테스터에서 거래가 테스트되고 22시에 마감되며 고문이 자신을 거래할지 여부는 모르겠습니다. 필요한 경우 코드가 있습니다.
안타깝게도 이 EA는 테스터에서만 올바르게 작동합니다....
온라인 - 신호의 절반 이상이 놓칠 것입니다. 이 조건 때문에:
어떻게 해야 하는지, 어떻게 변경하는지, 아니면 그냥 삭제해도 됩니다. Movinga 매개변수가 더 이상 코드에 없기 때문입니다.
그러나 Moving은 이 코드로 모든 트랜잭션을 어떻게 수행합니까?
모든 거래가 수행되어야하며 그 수가 많지 않고 하루에 한 번, 어드바이저가 23:00에 가격이 열린 모습부터 30분 이내에 20-40번의 시도를 해야 하고 포지션을 열다
그것은 귀하의 코드를 사용하여 고문이 화요일에 포지션을 열고 목요일과 금요일에 틱을 건너뛸 수 있음을 의미합니다
어떻게 해야 하는지, 어떻게 변경하는지, 아니면 그냥 삭제해도 됩니다. Movinga 매개변수가 더 이상 코드에 없기 때문입니다.
그러나 Moving은 이 코드로 모든 트랜잭션을 어떻게 수행합니까?
모든 거래가 수행되어야하며 그 수가 많지 않고 하루에 한 번, 어드바이저가 23:00에 가격이 열린 모습부터 30분 이내에 20-40번의 시도를 해야 하고 포지션을 열다
그것은 귀하의 코드를 사용하여 고문이 화요일에 포지션을 열고 목요일과 금요일에 틱을 건너뛸 수 있음을 의미합니다