포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 451 1...444445446447448449450451452453454455456457458...1178 새 코멘트 Vitek2010v 2014.01.29 16:47 #4501 //+----------------------------------------------- --------------------+ //| 주문 삭제 및/또는 마감, 볼륨별로 필터링 | //------------------------------------------------ ---------------------- #property show_inputs //------------------------------------------------ -------------------- 외부 이중 MinLot = 0.01; //삭제/닫을 수 있는 최소 로트 외부 이중 MaxLot = 0.1; //삭제/닫는 최대 로트 extern bool 구매 = 거짓; //구매 주문의 삭제/닫기 방향 extern bool 판매 = 거짓; //판매 주문 방향 삭제/닫기 extern bool 보류 = true; //대기 중인 주문 삭제 extern bool 시장 = true ; //시장 포지션 닫기 extern int 미끄러짐 = 2; //시장 포지션 마감 시 가격 하락 //------------------------------------------------ -------------------- 정수 시작() { 이중 SL,TP; string txt=StringConcatenate("주문을 삭제하거나 닫기 위한 스크립트, 시작 ",TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS)); 새로 고침(); 부울 오류=참; int 오류, OT, 티켓, nn; 더블 OOP,OL; 동안(사실) { (int j = OrdersTotal()-1; j >= 0; j--) { if (OrderSelect(j, SELECT_BY_POS)) { if ((OrderSymbol() == Symbol())) { OL = OrderLots(); if (OL<MinLot || OL>MaxLot) 계속 OT = 주문 유형(); if (!market && OT<2) 계속; if (!pending && OT>1) 계속; 티켓 = OrderTicket(); OOP = OrderOpenPrice(); 만약 (OT==OP_BUY) { error=OrderClose(Ticket,OrderLots(),NormalizeDouble(Bid,Digits),slippage,Red); if (오류) txt = StringConcatenate(txt,"\n구매 주문 마감 ",티켓); else txt = StringConcatenate(txt,"\n닫는 오류 ",GetLastError()); } 만약 (OT==OP_SELL) { error=OrderClose(Ticket,OrderLots(),NormalizeDouble(Ask,Digits),slippage,Blue); if (오류) txt = StringConcatenate(txt,"\n판매 주문 마감 ",티켓); else txt = StringConcatenate(txt,"\nError ",GetLastError()," 종료 ",Ticket); } 만약 (OT>1) { error=OrderDelete(티켓); if (오류) txt = StringConcatenate(txt,"\nOrder ",StrOrdersType(OT)," ", 티켓); else txt = StringConcatenate(txt,"\n오류 ", GetLastError()," 삭제 ",StrOrdersType(OT)," ", 티켓); } 만약 (!오류) { 오류 = GetLastError(); (오류<2) 계속하면; if (오류==129) { Comment("잘못된 가격",TimeToStr(TimeCurrent(),TIME_SECONDS)); 수면(5000); 새로 고침(); 계속하다; } if (오류==146) { j++; if (IsTradeContextBusy()) Sleep(2000); 계속하다; } Comment("오류 ",오류," 주문 마감 N ",OrderTicket(), " ",TimeToStr(TimeCurrent(),TIME_SECONDS)); } } } } 정수 = 0; (j = 0; j < OrdersTotal(); j++) { if (OrderSelect(j, SELECT_BY_POS)) { if (OrderSymbol() == Symbol()) { OL = OrderLots(); if (OL<MinLot || OL>MaxLot) 계속 OT = 주문 유형(); if (!market && OT<2) 계속; if (!pending && OT>1) 계속; 엔++; } } } if (n==0) 중단; ㄴ++; if (nn>10) {Comment("모든 거래를 성사시키지 못했습니다. 아직 ",n);break;} 수면(1000); 새로 고침(); } Comment(txt,"\n스크립트가 작업을 완료했습니다 ",TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS)); 리턴(0); } //------------------------------------------------ -------------------- 문자열 StrOrdersType(int t) { if (t==OP_BUY) return("구매"); if (t==OP_SELL) return("판매"); if (t==OP_BUYLIMIT) return("구매한도"); if (t==OP_SELLLIMIT) return("SellLimit"); if (t==OP_BUYSTOP) return("구매 중지"); if (t==OP_SELLSTOP) return("판매 중지"); } //------------------------------------------------ -------------------- 이 스크립트는 로트의 크기에 따라 배치될 쌍을 닫습니다. 로트 크기별로 모든 쌍에 대한 모든 미결 주문을 마감하도록 추가하거나 변경할 항목. 지연은 관심이 없습니다. Any rookie question, so How can i convert [아카이브!] 포럼을 어지럽히 지 Boris 2014.01.29 18:49 #4502 Vitek, SRC 버튼을 사용 하여 코드를 삽입하십시오 ! 읽을 수 없는 족쇄를 파헤쳐야 하는 사람은 누구입니까?! Evgeniy Khaynatskas 2014.01.29 19:13 #4503 pu6ka : 예, Ask 가격은 보이지 않지만 있습니다. :) 시각화 도우미에서 일시 중지하고 차트 속성에서 "표시 라인 표시"를 선택하고 테스트를 계속할 수 있습니다. 그리고 명목상 MT4의 가격 차트는 Bid에 따라 작성됩니다. 테스트의 품질을 결정하는 요소와 이를 최대로 개선하는 방법은 무엇입니까? [삭제] 2014.01.29 19:25 #4504 Zver4991 : 테스트의 품질을 결정하는 요소와 이를 최대로 개선하는 방법은 무엇입니까? 솔직히 말해서, 나는 모른다. 필요할 때까지 사이트 검색 [삭제] 2014.01.30 05:54 #4505 친애하는 전문가들. 주기를 사용하지 않고 보류 중인 주문 그리드를 여는 방법을 알려주실 수 있습니까? 어렵지 않다면 최소한 그러한 코드의 대략적인 예를 보여주십시오. 각 후속 그리드 주문에 대한 단계 및 로트 크기를 변경할 수 있는 기능. Alexey Subbotin 2014.01.30 10:08 #4506 Forexman77 : 나는 라인을 넣어 int 티켓 대신; 오류가 나옵니다: '=' - 배열에 왼쪽 대괄호가 필요함('=' - 배열에 왼쪽 대괄호가 필요함) '>' - 배열에 필요한 왼쪽 대괄호 '>' - 예기치 않은 토큰('>' - 예기치 않은 토큰) ')' - 할당 예상(')' - 할당 예상 ) 'continue' - 일부 주기 내에서만 사용되는 '중단' 또는 '계속' 그리고 훨씬 더. 이것은 티켓이 어딘가에서 이전 버전에서 여전히 사용된다는 것을 의미합니다. 코드를 정리해야 하는데... Alexey Subbotin 2014.01.30 10:12 #4507 1mql : 친애하는 전문가들. 주기를 사용하지 않고 보류 중인 주문 그리드를 여는 방법을 알려주실 수 있습니까? 어렵지 않다면 최소한 그러한 코드의 대략적인 예를 보여주십시오. 각 후속 그리드 주문에 대한 단계 및 로트 크기를 변경할 수 있는 기능. 예, 실제로 사이클과 동일합니다 ... 사이클이 없을 때만. 당신은 당신이 주기에서 그것을 여는 방법을 보여주고 당신이 주기를 사용하고 싶지 않은 이유를 설명합니다. 그렇지 않으면 당신이 실제로 얻고자 하는 것이 명확하지 않습니다 . Vitek2010v 2014.01.30 10:56 #4508 borilunad : Vityok, SRC 버튼을 사용하여 코드를 삽입하십시오! 읽을 수 없는 족쇄를 파헤쳐야 하는 사람은 누구입니까?! //+------------------------------------------------------------------+ //| удаления и/или закрытие ордера, с фильтрацией его по объему | //--------------------------------------------------------------------- #property show_inputs //-------------------------------------------------------------------- extern double MinLot = 0.01 ; //минимальный лот который удаляем/закываем extern double MaxLot = 0.1 ; //максимальный лот который удаляем/закываем extern bool Buy = false ; //удалять/закрывать направление buy ордеров extern bool Sell = false ; //удалять/закрывать направление sell ордеров extern bool pending = true ; //удалить отложенные ордера extern bool market = true ; //закрыть рыночные позиции extern int slippage = 2 ; //проскальзывание цены при закрытии рыночных позиций //-------------------------------------------------------------------- int start() { double SL,TP; string txt= StringConcatenate ( "Скрипт удаления или закрытие ордера, старт " , TimeToStr ( TimeCurrent (), TIME_DATE | TIME_SECONDS )); RefreshRates (); bool error= true ; int Error,OT,Ticket,nn; double OOP,OL; while ( true ) { for ( int j = OrdersTotal ()- 1 ; j >= 0 ; j--) { if ( OrderSelect (j, SELECT_BY_POS )) { if (( OrderSymbol () == Symbol ())) { OL = OrderLots (); if (OL<MinLot || OL>MaxLot) continue ; OT = OrderType (); if (!market && OT< 2 ) continue ; if (!pending && OT> 1 ) continue ; Ticket = OrderTicket (); OOP = OrderOpenPrice (); if (OT== OP_BUY ) { error= OrderClose (Ticket, OrderLots (), NormalizeDouble ( Bid , Digits ),slippage,Red); if (error) txt = StringConcatenate (txt, "\nЗакрыт ордер BUY " ,Ticket); else txt = StringConcatenate (txt, "\nОшибка закрытия " ,GetLastError()); } if (OT== OP_SELL ) { error= OrderClose (Ticket, OrderLots (), NormalizeDouble ( Ask , Digits ),slippage,Blue); if (error) txt = StringConcatenate (txt, "\nЗакрыт ордер SELL " ,Ticket); else txt = StringConcatenate (txt, "\nОшибка " ,GetLastError(), " закрытия " ,Ticket); } if (OT> 1 ) { error= OrderDelete (Ticket); if (error) txt = StringConcatenate (txt, "\nУдален ордер " ,StrOrdersType(OT), " " ,Ticket); else txt = StringConcatenate (txt, "\nОшибка " ,GetLastError(), " удаления " ,StrOrdersType(OT), " " ,Ticket); } if (!error) { Error = GetLastError(); if (Error< 2 ) continue ; if (Error== 129 ) { Comment ( "Неправильная цена " , TimeToStr ( TimeCurrent (), TIME_SECONDS )); Sleep ( 5000 ); RefreshRates (); continue ; } if (Error== 146 ) { j++; if ( IsTradeContextBusy ()) Sleep ( 2000 ); continue ; } Comment ( "Ошибка " ,Error, " закрытия ордера N " , OrderTicket (), " " , TimeToStr ( TimeCurrent (), TIME_SECONDS )); } } } } int n= 0 ; for (j = 0 ; j < OrdersTotal (); j++) { if ( OrderSelect (j, SELECT_BY_POS )) { if ( OrderSymbol () == Symbol ()) { OL = OrderLots (); if (OL<MinLot || OL>MaxLot) continue ; OT = OrderType (); if (!market && OT< 2 ) continue ; if (!pending && OT> 1 ) continue ; n++; } } } if (n== 0 ) break ; nn++; if (nn> 10 ) { Comment ( "Не удалось закрыть все сделки, осталось еще " ,n); break ;} Sleep ( 1000 ); RefreshRates (); } Comment (txt, "\nСкрипт закончил свою работу " , TimeToStr ( TimeCurrent (), TIME_DATE | TIME_SECONDS )); return ( 0 ); } //-------------------------------------------------------------------- string StrOrdersType( int t) { if (t== OP_BUY ) return ( "Buy" ); if (t== OP_SELL ) return ( "Sell" ); if (t== OP_BUYLIMIT ) return ( "BuyLimit" ); if (t== OP_SELLLIMIT ) return ( "SellLimit" ); if (t== OP_BUYSTOP ) return ( "BuyStop" ); if (t== OP_SELLSTOP ) return ( "SellStop" ); } //-------------------------------------------------------------------- 이 스크립트는 로트의 크기에 따라 배치될 쌍을 닫습니다. 로트 크기별로 모든 쌍에 대한 모든 미결 주문을 마감하도록 추가하거나 변경할 항목. 지연은 관심이 없습니다. 댓글 | 삭제 | 편집 [삭제] 2014.01.30 19:12 #4509 Vitek2010 : 이 스크립트는 로트 크기별로 배치할 쌍을 닫습니다. 로트 크기별로 모든 쌍에 대한 모든 미결 주문을 마감하도록 추가하거나 변경할 항목. 지연은 관심이 없습니다. 댓글 | 삭제 | 편집 마지막 외부 아래: extern int 미끄러짐 = 2; //시장 포지션 마감 시 가격 하락 다른 것을 넣으십시오 : extern bool total_symb = true; //모든 쌍에 대해 그리고 각 라인: if (( OrderSymbol () == 기호 ())) 그리고 if ( OrderSymbol () == 기호 ()) 이것을 교체하십시오: if ( OrderSymbol () == 기호 () || total_symb) 이론적으로 작동해야 확인합니다. [삭제] 2014.01.31 06:08 #4510 그러한 질문이 생겼습니다. 예를 들어 하루에 2%의 손실에 도달하면 모든 거래를 닫는 고문이나 스크립트를 작성할 수 있습니까? 1...444445446447448449450451452453454455456457458...1178 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
//------------------------------------------------ --------------------
이 스크립트는 로트의 크기에 따라 배치될 쌍을 닫습니다. 로트 크기별로 모든 쌍에 대한 모든 미결 주문을 마감하도록 추가하거나 변경할 항목. 지연은 관심이 없습니다.
예, Ask 가격은 보이지 않지만 있습니다. :)
시각화 도우미에서 일시 중지하고 차트 속성에서 "표시 라인 표시"를 선택하고 테스트를 계속할 수 있습니다. 그리고 명목상 MT4의 가격 차트는 Bid에 따라 작성됩니다.
테스트의 품질을 결정하는 요소와 이를 최대로 개선하는 방법은 무엇입니까?
테스트의 품질을 결정하는 요소와 이를 최대로 개선하는 방법은 무엇입니까?
친애하는 전문가들.
주기를 사용하지 않고 보류 중인 주문 그리드를 여는 방법을 알려주실 수 있습니까?
어렵지 않다면 최소한 그러한 코드의 대략적인 예를 보여주십시오.
각 후속 그리드 주문에 대한 단계 및 로트 크기를 변경할 수 있는 기능.
나는 라인을 넣어
int 티켓 대신; 오류가 나옵니다:
'=' - 배열에 왼쪽 대괄호가 필요함('=' - 배열에 왼쪽 대괄호가 필요함)
'>' - 배열에 필요한 왼쪽 대괄호
'>' - 예기치 않은 토큰('>' - 예기치 않은 토큰)
')' - 할당 예상(')' - 할당 예상 )
'continue' - 일부 주기 내에서만 사용되는 '중단' 또는 '계속'
그리고 훨씬 더.
이것은 티켓이 어딘가에서 이전 버전에서 여전히 사용된다는 것을 의미합니다. 코드를 정리해야 하는데...
친애하는 전문가들.
주기를 사용하지 않고 보류 중인 주문 그리드를 여는 방법을 알려주실 수 있습니까?
어렵지 않다면 최소한 그러한 코드의 대략적인 예를 보여주십시오.
각 후속 그리드 주문에 대한 단계 및 로트 크기를 변경할 수 있는 기능.
Vityok, SRC 버튼을 사용하여 코드를 삽입하십시오! 읽을 수 없는 족쇄를 파헤쳐야 하는 사람은 누구입니까?!
이 스크립트는 로트의 크기에 따라 배치될 쌍을 닫습니다. 로트 크기별로 모든 쌍에 대한 모든 미결 주문을 마감하도록 추가하거나 변경할 항목. 지연은 관심이 없습니다.
이 스크립트는 로트 크기별로 배치할 쌍을 닫습니다. 로트 크기별로 모든 쌍에 대한 모든 미결 주문을 마감하도록 추가하거나 변경할 항목. 지연은 관심이 없습니다.
마지막 외부 아래:
extern int 미끄러짐 = 2; //시장 포지션 마감 시 가격 하락
다른 것을 넣으십시오 :
extern bool total_symb = true; //모든 쌍에 대해
그리고 각 라인:
if (( OrderSymbol () == 기호 ()))
그리고
if ( OrderSymbol () == 기호 ())
이것을 교체하십시오:
if ( OrderSymbol () == 기호 () || total_symb)
이론적으로 작동해야 확인합니다.