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

 
sss2019 :


고맙습니다. 따라서 기간 M1은 값 1에 해당하고 기간 M5는 값 5에 해당하며 기간 H1은 값 60에 해당하고 기간 H4-240이 맞습니까?


예 -

PERIOD_M1 1 1 минута
PERIOD_M5 5 5 минут
PERIOD_M15 15 15 минут
PERIOD_M30 30 30 минут
PERIOD_H1 60 1 час
PERIOD_H4 240 4 часа
PERIOD_D1 1440 1 день
PERIOD_W1 10080 1 неделя
PERIOD_MN1 43200 1 месяц
0 (ноль) 0 Период текущего графика

 

안녕하세요!

알아낼 수 있도록 도와주세요. 간단한 표시기를 작성하려고하는데 어떤 이유로 빈 값을 제공합니다.

오류는 이 곳 어딘가에 있는 것 같습니다.

ExtVolumesBuffer[i]=dVolume;


ExtVolumesBuffer 배열에서 이 작업의 필드는 아무 것도 변경하지 않기 때문입니다.

어디선가 곡률을 표시한 것은 이해하지만 여기에서 어떻게 되는지 이해가 되지 않습니다.

미리 감사드립니다!

 #property indicator_separate_window
#property indicator_minimum 0
#property indicator_buffers 1
#property indicator_color1 Black
//---- indicator buffers
double ExtVolumesBuffer[];
double emaExtVolumesBuffer[];

//+------------------------------------------------------------------+
int init()
{
//---- indicator buffers mapping
SetIndexBuffer ( 0 ,emaExtVolumesBuffer);
//---- drawing settings
SetIndexStyle ( 0 , DRAW_LINE );
//---- sets default precision format for indicators visualization
IndicatorDigits ( 0 );
//---- name for DataWindow and indicator subwindow label
IndicatorShortName ( "emaVolumes" );
SetIndexLabel ( 0 , "emaVolumes" );
//---- initialization done
return ( 0 );
}
//+------------------------------------------------------------------+
int start()
{
int i,nLimit,nCountedBars;
//---- bars count that does not changed after last indicator launch.
nCountedBars= IndicatorCounted ();
//---- last counted bar will be recounted
if (nCountedBars> 0 ) nCountedBars--;
nLimit= Bars -nCountedBars;
//----
for (i= 0 ; i<nLimit; i++)
{
double dVolume=Volume[i];
ExtVolumesBuffer[i]=dVolume;
emaExtVolumesBuffer[i]= iMAOnArray (ExtVolumesBuffer, 0 , 10 , 0 , MODE_EMA ,i);

Print (Volume[i],Volume[i+ 1 ],Volume[i+ 2 ],Volume[i+ 3 ]);
Print (ExtVolumesBuffer[i],ExtVolumesBuffer[i+ 1 ],ExtVolumesBuffer[i+ 2 ],ExtVolumesBuffer[i+ 3 ]);
}
//---- done
return ( 0 );
}
//+------------------------------------------------------------------+
 
sss2019 :


고맙습니다. 따라서 기간 M1은 값 1에 해당하고 기간 M5는 값 5에 해당하며 기간 H1은 값 60에 해당하고 기간 H4-240이 맞습니까?

M1 기간 동안 사례 1의 값이 선택되고 M15 기간 동안 사례 15의 값이 선택될 때 이 구성이 작동해야 합니다. 이렇게 작동합니까, 아니면 사례 1 사례 2 사례 3을 수행해야 하나요 - 순서대로?

 int CurrentGrafPeriod ()
{
   
int Ba;
int GrafPeriod = Period ();    
   switch (GrafPeriod)
    {
 
    case 1 :  Ba = 60 ; break ;
     case 5 :  Ba = 12 ; break ;
     case 15 : Ba = 4 ;  break ;
     case 30 : Ba = 2 ;  break ;
     case 60 : Ba = 1 ;  break ;
    }
return (Ba);
}

if (CurrentGrafPeriod () == 1 ){ваше исполнение}
if (CurrentGrafPeriod () == 5 ){ваше исполнение}
и так далее...
그러나 이것은 이론입니다-효과가 있을지 모르겠습니다 ....
 
sss2019 :


고맙습니다. 따라서 기간 M1은 값 1에 해당하고 기간 M5는 값 5에 해당하며 기간 H1은 값 60에 해당하고 기간 H4-240이 맞습니까?

M1 기간 동안 사례 1의 값이 선택되고 M15 기간 동안 사례 15의 값이 선택될 때 이 구성이 작동해야 합니다. 이렇게 작동합니까, 아니면 사례 1 사례 2 사례 3을 수행해야 하나요 - 순서대로?


먼저 1, 5 등의 숫자 대신 명명된 상수( PERIOD_M1, PERIOD_M5 등)를 사용하는 것이 좋습니다.

둘째, 귀하의 예에 오류가 있습니다. 변수 Ba 는 항상 값 1을 취합니다.

 
sss2019 :


고맙습니다. 따라서 기간 M1은 값 1에 해당하고 기간 M5는 값 5에 해당하며 기간 H1은 값 60에 해당하고 기간 H4-240이 맞습니까?

M1 기간 동안 사례 1의 값이 선택되고 M15 기간 동안 사례 15의 값이 선택될 때 이 구성이 작동해야 합니다. 이렇게 작동합니까, 아니면 사례 1 사례 2 사례 3을 수행해야 하나요 - 순서대로?

1) 각 줄에 break를 추가하면 작동합니다.

2) 1, 5, 15 대신 PERIOD_M1 , PERIOD_M5 , PERIOD_M15 등을 사용 하는 것이 좋습니다.

 

안녕하세요! 거래 로봇이 이익에 도달했을 때 약 50번 정도 포지션을 청산하지 않는다는 사실에 직면했다고 상상해 보십시오. 그런 다음 그는 모든 것, 연기자 및 모든 것을 닫고 다시 설정해야 합니다. 닫지 않으면 주문 혼란과 손실이 발생합니다.

따라서 TakeProfit에서 100파운드로 마감된 주문에 OrderClosePrice가 0인 경우가 있다고 상상해 보십시오!!!!!

여기, 화면에서 직접 확인하십시오. 여기 아래에서 다섯 번째 줄이 있습니다. 조건부로 49라는 이름의 주문은 이익 실현으로 마감되었습니다. 그리고 밑에서 아홉번째 줄 주문닫기가격은 0입니다!!!!!

 
PapaYozh :

둘째, 귀하의 예에 오류가 있습니다. 변수 Ba 는 항상 값 1을 취합니다.

그리고 왜? 휴식이 충분하지 않습니까?
 
dkfl.zrjdktdbx :

안녕하세요! 거래 로봇이 이익에 도달했을 때 약 50번 정도 포지션을 청산하지 않는다는 사실에 직면했다고 상상해 보십시오. 그런 다음 그는 모든 것, 연기자 및 모든 것을 닫고 다시 설정해야 합니다. 닫지 않으면 주문 혼란과 손실이 발생합니다.

따라서 TakeProfit에서 100파운드로 마감된 주문에 OrderClosePrice가 0인 경우가 있다고 상상해 보십시오!!!!!

여기, 화면에서 직접 확인하십시오. 여기 아래에서 다섯 번째 줄이 있습니다. 조건부로 49라는 이름의 주문은 이익 실현으로 마감되었습니다. 그리고 밑에서 아홉 번째 줄에 OrderClosePrice는 0입니다!!!!!


이것은 OrderClosePrice가 아닙니다 - 이것은 주문 마감 가격 - 주문 의 종가 입니다.

조언자의 코드를 편집해야 합니다. 싸우는 사람은 바로 그 사람입니다.

 

이해했다. 그래서 코드에 그렇게 복잡한 것은 없는 것 같습니다.. 바로 지금 포스팅하겠습니다.

주문하면 렘자폼님이 생각나네요. 이익실현으로 어떤 주문이 닫히면 나는 모든 주문을 삭제하고 다시 렘자폰님 시스템에서 시간을 기억하고 설정합니다.

 for ( i= OrdersHistoryTotal ();i> 0 ;i--){ OrderSelect (i- 1 ,SELECT_BY_POS,MODE_HISTORY  );
Alert ( "wremjapomnim " ,wremjapomnim, "  OrderCloseTime(        )   " ,   OrderCloseTime ( ),   " " ,i , " OrderTakeProfit( ) " , OrderTakeProfit ( ),
   " OrderClosePrice(    )  " , OrderClosePrice (   ) );
if ( OrderTakeProfit ( )== OrderClosePrice (       )&&wremjapomnim< OrderCloseTime ( )|| ( NormalizeDouble ( OrderClosePrice ()- OrderTakeProfit (), Digits )< 2 * Point )
   &&wremjapomnim< OrderCloseTime (       )|| ( NormalizeDouble ( OrderClosePrice ()- OrderTakeProfit (), Digits )>- 2 * Point )&&wremjapomnim< OrderCloseTime (       )){C= 0 ;A= 1 ;   Alert ( "C" ,C, "A" ,A);
   for ( int ii= OrdersTotal ();ii> 0 ;ii--){ OrderSelect (ii- 1 ,SELECT_BY_POS );
   if ( OrderMagicNumber ( )== 2000 && OrderSymbol ()== Symbol ()|| OrderMagicNumber ( )== 1000 && OrderSymbol ()== Symbol ()){ 
   OrderDelete ( OrderTicket ( )) ; Alert ( "OrderDelete-vse" ,   GetLastError ( ) ); stsBUY= 0 ;stsSELL= 0 ;
   OrderClose ( OrderTicket ( ), OrderLots ( ), OrderClosePrice ( ) , 0 , CLR_NONE ); Alert ( "OrderClose-vse" ,   GetLastError ( ) ); C= 0 ; }     }              }
   
                                                      } 
 
 
melnikas :

안녕하세요!

알아낼 수 있도록 도와주세요. 간단한 표시기를 작성하려고하는데 어떤 이유로 빈 값을 제공합니다.

오류는 이 곳 어딘가에 있는 것 같습니다.


ExtVolumesBuffer 배열에서 이 작업의 필드는 아무 것도 변경하지 않기 때문입니다.

어디선가 곡률을 표시한 것은 이해하지만 여기에서 어떻게 되는지 이해가 되지 않습니다.

미리 감사드립니다!


제 경우가 그렇게 어려운가요?