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

 
Shniperson :

안녕하세요! 성장/하강을 위해 막대 검사를 "루프"하는 방법을 알려주실 수 있습니까? 즉, 이 상태를 가능한 한 짧게 설명합니다.

닫기[0]>열기[0]&& 닫기[1]>열기[1]&& 닫기[2]>열기[2]&& 닫기[3]>열기[3]&& 닫기[4]>열기[4]&& 닫기[5]>열기[5]&& 닫기[6]>열기[6]&& 닫기[7]>열기[7]

 bool Res= true ;
for ( int i= 0 ;i< 8 ;i++) Res = Res && Close[i]>Open[i];

미리 감사드립니다.


그렇게 할 수는 있지만 거의 더 빠를 것입니다. 조건을 확장해야 합니다.
 

이것을 현실로 만드는 방법을 모르겠습니다. 이것이 가능합니까?

내 전략은 이상적으로 터미널에서 8-00시에 핸들이 열리고 수익이 나면 다음 날까지 열립니다. 내 방향으로 가지 않으면 손실이 발생하여 포지션을 모두 뒤집습니다. 저것들. 최대값은 더 이상 2개 주문이 아니어야 합니다. 이익에 도달하지 못했지만 트롤이 손익분기점으로 이동한 경우 우리는 모든 위치를 트롤합니다. 물론 펜으로 모든 것을 할 수 있지만 작업으로 인해 위치를 따를 수는 없습니다. 따라서 주문을 한 다음 그 자리에 고문이 동행하는 것이 바람직합니다. RSI는 테스터에서 테스트하기 위해 망쳤습니다.

난 그냥 충분했다

 extern int Hour_To_Open = 08 ; //час открытия (-1 - не задано), терминальное время
extern int Minute_To_Open = 00 ; //минута открытия (-1 - не задано), терминальное время
extern double TakeProfit = 50 ;
extern double StopLoss = 30 ;
extern double Lot = 0.1 ;
extern int MagicNumber = 655433 ;


//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
if (( Hour ()==Hour_To_Open) && ( Minute ()==Minute_To_Open)) 
{ //если настало время открытия сделок
int total = OrdersTotal ();
for ( int i = 0 ; i < total; i++) 
{
OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNumber)
{
return ( 0 );
}
} 
int ticket= 1 ;
if ( iRSI ( NULL , 0 , 14 , PRICE_CLOSE , 0 )> iRSI ( NULL , 0 , 14 ,PR ICE_CLOSE, 1 ))
{
ticket= OrderSend ( Symbol (),OP_BUY,Lot,Ask, 3 ,Bid - StopLoss * Point ,Bid + TakeProfit * Point , "My order #" ,MagicNumber, 0 , Blue );
if (ticket< 0 )
{
Sleep ( 30000 );
}
}
else
{
ticket= OrderSend ( Symbol (),OP_SELL,Lot,Bid, 3 ,Ask + StopLoss * Point ,Ask - TakeProfit * Point , "My order #" ,MagicNumber, 0 , Red );
if (ticket< 0 )
{
Sleep ( 30000 );
}
}
} //end if((Hour()==Hour_To_Open) && (Minute()==Minute_To_Open))
//----
return ( 0 );
}
//+------------------------------------------------------------------+

그런 후행이 있습니다. 다른 고문에게서 가져 왔지만 작동하지 않습니다.

 extern bool UseTrailing = true; //включение/выключение T-SL
extern int TrailingStop = 50 ; // Фиксированный размер трала
extern int TrailingStep = 1 ; // Шаг трала

//+-------------------------------------------------------------------------------------------------------------------+
//| трейлинг стоп лосс |
void T_SL() {
int i= 0 ;
for (i= 0 ; i< OrdersTotal (); i++) {
if (!( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))) continue ;
if ( OrderSymbol () != Symbol ()) continue ; 

if ( OrderType ()==OP_BUY) {
if ( NormalizeDouble (Bid- OrderOpenPrice (), Digits )> NormalizeDouble (TrailingS top* Point , Digits )) {
if ( NormalizeDouble ( OrderStopLoss (), Digits )<Normali zeDouble(Bid-(TrailingStop+TrailingStep- 1 )* Point , Digits ))
OrderModify ( OrderTicket (), OrderOpenPrice (), NormalizeDouble (Bid-TrailingStop* Point , Digits ), OrderTakeProfit (), 0 , CLR_NONE );
} //end if(NormalizeDouble(Bid-OrderOpenPrice(),Digits)>NormalizeDouble(TrailingS top*Point,Digits))
} //end if(OrderType()==OP_BUY)

if ( OrderType ()==OP_SELL) {
if ( NormalizeDouble ( OrderOpenPrice ()-Ask, Digits )> NormalizeDouble (TrailingStop* Point ,Dig its)) {
if ( NormalizeDouble ( OrderStopLoss (), Digits )>Normali zeDouble(Ask+(TrailingStop+TrailingStep- 1 )* Point , Digits ))
OrderModify ( OrderTicket (), OrderOpenPrice (), NormalizeDouble (Ask+TrailingStop* Point , Digits ), OrderTakeProfit (), 0 , CLR_NONE );
} //end if(NormalizeDouble(OrderOpenPrice()-Ask,Digits)>NormalizeDouble(TrailingStop*Point,Dig its))
} //end if(OrderType()==OP_SELL)
} //end for(i=0; i<OrdersTotal(); i++)
} //end void T_SL()
//| трейлинг стоп лосс |
//+-------------------------------------------------------------------------------------------------------------------+

어떻게 망칠까요? 그리고 역 으로 포지션을 연 후에 한 번만 작동하도록

 

내가 이해하거나 이해하지 못하기 때문에 반대 방향을 여기 어딘가에서 찾아야 할 필요가 있습니까?

bool OrderCloseBy ( int 티켓, int 반대편, color Color=CLR_NONE)
동일한 상품에 대해 열린 다른 위치로 하나의 열린 위치를 닫지만 반대 방향입니다. 함수가 성공적으로 완료되면 TRUE를 반환합니다. 함수 실패 시 FALSE를 반환합니다. 오류에 대한 정보를 얻으려면 GetLastError() 함수를 호출해야 합니다.
옵션:
티켓 - 마감 중인 주문의 고유 일련 번호입니다.
반대 - 반대 순서의 고유한 일련 번호입니다.
색깔 - 차트에서 닫기 화살표의 색상입니다. 매개변수가 없거나 해당 값이 CLR_NONE과 같으면 차트에 화살표가 표시되지 않습니다.
예시:
 if(iRSI(NULL,0,14,PRICE_CLOSE,0)>75)
    {
     OrderCloseBy(주문 ID, 반대 ID);
     리턴(0);
    }

 
Uv.profi, 툴바에서 스크립트를 실행할 수 있습니까? 이제 작성된 스크립트는 네비게이터에서 실행하거나 지정된 키 조합을 사용하여 실행해야 합니다(어떤 이유에서인지 매번 작동함). 문제는 - 예를 들어 " 그래픽 도구 " 패널에서 아이콘에 새 기능을 할당하고 도구 모음에서 스크립트를 실행할 수 있습니까 ? 아마도 다른 옵션이 있습니까?
 

안녕하세요.

OrderSend() 함수의 원본 코드를 어디에서 볼 수 있는지 알려주실 수 있습니까?

미리 감사드립니다.

 
kon12 :
Uv.profi, 툴바에서 스크립트를 실행할 수 있습니까? 이제 작성된 스크립트는 네비게이터에서 실행하거나 지정된 키 조합을 사용하여 실행해야 합니다(어떤 이유에서인지 매번 작동함). 질문 - 예를 들어 "그래픽 도구" 패널에서 아이콘에 새 기능을 할당하고 도구 모음에서 스크립트를 실행할 수 있습니까? 아마도 다른 옵션이 있습니까?

아니요, 하지만 Label 개체를 드래그하는 예를 사용할 수 있습니다 ...

다운로드 하고 터미널로 대체하여 추출하고 설정에서 dll 가져오기를 허용합니다. Expert에 Expert 연결한 터미널에서 실행할 재시작 스크립트의 이름을 입력합니다. 터미널 또는 컴파일.

Expert Advisor는 차트에서 개체를 끌 때 이름별로 스크립트를 지정된 차트에 로드합니다.

      ServiceLoadScript( WindowHandle ( Symbol (), Period ()), "ZZ_All_Quotings 4.10425" , /*<---- Имя загружаемого скрипта.*/   false);
파일:
trade_1.mq4  2 kb
 

안녕하세요!!

말해 주세요. 저는 채널 뒤에 두 개의 보류 중인 항목을 배치 하여 채널 분석을 수행하는 Expert Advisor를 작성하고 있습니다. 따라서 지연된 것 중 하나가 트리거되면 다른 하나는 삭제되어야 합니다. 코드로 구현하는 방법?

 
Parn25 :

안녕하세요!!

말해 주세요. 저는 채널 뒤에 두 개의 보류 중인 항목을 배치하여 채널 분석을 수행하는 Expert Advisor를 작성하고 있습니다. 따라서 지연된 것 중 하나가 트리거되면 다른 하나는 삭제되어야 합니다. 코드로 구현하는 방법?


옵션으로 적합할 수 있습니다. 올빼미 자체는 아직 유사한 버전의 작업 논리를 수행하지 않았습니다. 고문이 이전에 배치된 2개의 보류 중인 주문 중 하나의 시장 주문만 허용하는 경우 모니터링(추적)합니다. 시장에 (마법으로) 주문(시장)이 있는 경우, 표시되는 즉시 보류 중인 . 모두. 보류 중인 항목을 삭제하려면 Google 검색을 통해 검색 문자열: "deleting site:mql4.com 주문"과 같이 찾습니다.
 

안녕하세요!

테스터에서 EA를 실행하고 있습니다. 서버는 4자리입니다. 매수 또는 매도 주문을 할 때 저널은 다음과 같이 씁니다.

2011.10.23 15:27:26 2010.12.16 06:16 test_sovetnik GBPUSD,H1: 오픈 #1 매수 0.10 GBPUSD에서 1.5551 sl: 1.4551 tp: 1.5586 ok

하지만 1.55512의 가격으로 오픈!!! 다섯 자리입니다. 또한 지연은 네 자리에 따라 배치되고 네 자리에 따라 작동합니다. 하지만 OP_SELL과 OP_BUY는 5자리만 오픈합니다!

나는 NormalizeDouble(Ask, Digits)을 합니다.

아무것도 도움이되지 않습니다! 이 문제를 해결하는 방법을 알려주시겠습니까?

물론 마지막 기호를 무시할 수 있습니다. 오류는 충돌하지 않지만 실험의 순수성을 위해 모든 거래가 4자리로 종료되어야 합니다.

 
ZZZEROXXX :
비표준 시간 프레임에서 실행하기 위해 스크립트로 변환하기 위해 표준 이동 평균과 같은 어드바이저를 수정하는 방법을 알려주십시오.


위로. 어드바이저를 한마디로 스크립트로 바꾸는 원리에 감사드립니다