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

 

현재 가격이나 이동 평균 을 추세선과 올바르게 비교하는 방법을 알려주시겠습니까?

미리 감사드립니다.

     double maH_fast= iMA ( NULL ,fast_maH_timeframe,fast_maH_period, 0 ,fast_maH_method,fast_maH_price, 0 );

     if ( ObjectFind ( "Tr_S1" )==- 1 )
     {
      Create_Tr_S( "Tr_S1" , White ,timf2s,TF2S,timf1s,TF1S);
     }

     if (maH_fast> "Tr_S1" )
     {...}
 
ikatsko :

전문가 작업 중에 수익성 있는 롱 포지션의 수와 수익성 있는 숏 포지션의 수를 별도로 계산하는 방법은 무엇입니까?

전략은 다음과 같아야 합니다. Expert Advisor 시작 이후 수익성 있는 롱 포지션의 수가(또는 더 나은 경우, 계정의 전체 기록에 대해) 숏 포지션보다 많을 경우 열린 롱 포지션만 허용됩니다. 그 반대.

고문이 마감한 경우 표시된 트랜잭션을 계산하는 방법은 명확합니다. 그러나 포지션이 TP나 SL에 의해 청산된다면 ... ?

누군가 기성품 기능 코드를 가지고 있습니까?


 int ProfitableOrdersOfLongs(){
   int i,Orders= 0 ; 
   for (i= 0 ;i< OrdersHistoryTotal ();i++){
       if (! OrderSelect (i,SELECT_BY_POS,MODE_HISTORY)) continue ;
       if ( OrderSymbol ()!= Symbol ()) continue ;
       if ( OrderMagicNumber ()!=Magic) continue ;
       if ( OrderType ()== 0 ) if ( OrderProfit ()> 0 ) Orders++;              
    }  
return (Orders);} 
//====================================================================================================== 
int ProfitableOrdersOfShorts(){
   int i,Orders= 0 ; 
   for (i= 0 ;i< OrdersHistoryTotal ();i++){
       if (! OrderSelect (i,SELECT_BY_POS,MODE_HISTORY)) continue ;
       if ( OrderSymbol ()!= Symbol ()) continue ;
       if ( OrderMagicNumber ()!=Magic) continue ;
       if ( OrderType ()= 1 ) if ( OrderProfit ()> 0 ) Orders++;              
    }  
return (Orders);} 
 
nemo811 :

현재 가격이나 이동 평균을 추세선과 올바르게 비교하는 방법을 알려주시겠습니까?

미리 감사드립니다.

추세선에는 시간-가격 좌표가 있는 시작점과 시간-가격 좌표가 있는 끝점이 있습니다.

동일한 좌표의 직선 방정식을 사용하여 구성된 세그먼트의 이 두 좌표 사이의 임의 지점에서 가격 수준을 찾고 Mashka의 가격 수준과 원하는 막대와 이 선의 교차점을 비교할 수 있습니다. ..

읽을 수 있습니다-유사한 예에 대한 자세한 설명이 있습니다.

 
Roman. :

마지막 마감 시간을 가지고 OrderCloseTime()을 사용하여 마감 시간을 이전 마감 시간과 비교하고 동일하면 이전 마감 주문의 마감 시간과 비교합니다... 이와 같은 것, 물론 이 모든 것 주기에 있습니다 - 마지막 마감부터 첫 번째 주문까지 순차적으로 이동하여 주문 마감 시간을 비교합니다... 자세히 - 미리 알고 있고 동시에 마감된 마지막 주문의 마감 시간을 인쇄합니다(에 따라 당신에게), 세 가지 주문을 가정 해 봅시다 . "동시에"이해하더라도 다를 수 있습니다. 내가 이해하는 것처럼 주문을 닫으려면 - 어쨌든 대기열이 닫힙니다. 실제로, 예를 들어 한 번에 3개의 주문에 대한 마감 시간은 같을 수 없습니다. Print()를 사용하여 직접 인쇄하고 3개의 동시 주문 값을 확인합니다. ) 특성, 즉 동시 마감의 개념, 즉 여러 주문이 동시에 마감된 것으로 간주될 수 있는 경우에 여러 주문의 마감 시간이 약간 의 편차를 보이는 개념을 도입하는 것이 필요할 수 있습니다. 여기에서 이미 "춤"-자신을 실험하고보십시오.

감사합니다. 작동했지만 이제 여러 주문이 시작됩니다.

이것을 좋아했다

 OrderSelect ( OrdersHistoryTotal ()- 1 , SELECT_BY_POS, MODE_HISTORY); //выбрать последний ордер 
tik= OrderCloseTime ();
for ( int l= OrdersHistoryTotal (); l>= 0 ; l--) 
{
OrderSelect (l, SELECT_BY_POS, MODE_HISTORY);
if ( OrderType ()==OP_BUY||OP_SELL)
 {
   if ( OrderMagicNumber ()== 1 )
   {
   if ( OrderProfit ()< 0 )
    {
     if ( OrderClosePrice ()!= OrderStopLoss ())
     {
     if (tik<= OrderCloseTime ())
     {
 
vik-777 :

감사합니다. 작동했지만 이제 여러 주문이 시작됩니다.

이것을 좋아했다

문제가 해결되었습니다 모두 감사합니다

 OrderSelect ( OrdersHistoryTotal ()- 1 , SELECT_BY_POS, MODE_HISTORY); //выбрать последний ордер 
tik= OrderCloseTime ();
for ( int l= OrdersHistoryTotal (); l>= 0 ; l--) 
{
OrderSelect (l, SELECT_BY_POS, MODE_HISTORY);
if ( OrderType ()==OP_BUY||OP_SELL)
 {
   if ( OrderMagicNumber ()== 1 )
   {
   if ( OrderProfit ()< 0 )
    {
     if ( OrderClosePrice ()!= OrderStopLoss ())
     {
     if (tik<= OrderCloseTime ())
     {
     a = OrdersHistoryTotal ();
     if (a>w)
     {
     if (sarik> 0 )
      {   
       OrderSend ( Symbol (),OP_BUY,Lot1, NormalizeDouble (Ask, 4 ), 1 ,Ask - SL1* Point ,Ask + 10 * Point , 0 , 2 );
      w++;
      }
 
nemo811 :

현재 가격이나 이동 평균을 추세선과 올바르게 비교하는 방법을 알려주시겠습니까?

1. if(maH_fast>"Tr_S1") {...} -- 오류: maH_fast는 실수이고 "Tr_S1"은 문자열 유형 값입니다.
2. 더블 ObjectGetValueByShift(문자열 이름, int 시프트)
이 함수는 지정된 막대에 대한 가격 값을 계산하고 반환합니다(현재 막대에 상대적인 오프셋). 가격 값은 첫 번째 및 두 번째 좌표에 대한 선형 방정식을 사용하여 계산됩니다. 추세선 에 사용됩니다.
옵션:
name - 개체의 이름입니다.
shift - 바 번호.
예: 이중 가격=ObjectGetValueByShift("MyTrendLine#123", 11);
 
안녕하세요! 이 질문이 있습니다. iHighest 및 iLowest를 사용하여 특정 기간 동안 최대 고/저 값이 있는 막대 번호를 찾을 수 있지만 특정 막대 수에 대한 st Dev 표시기의 최대값을 찾는 방법을 가정해 보겠습니다. ?
 
double maxdev,mindev= 1 ;
for ( int i= 0 ;i<counbar;i> 0 )
{
double val= iStdDev ( NULL , 0 , 10 , 0 , MODE_EMA , PRICE_CLOSE ,i);
if (mindev>val)mindev=val;
if (maxdev<val)maxdev=val;
}
Print ( "maxdev - " ,maxdev, " mindev - " ,mindev);
그런 곳.
 
7sintez :

모든 것을 보았고... 모든 것을 했습니다... 포지션을 열지 않았고 그게 전부입니다! 정기적으로 닫히지만 어떤 식으로든 열리지 않습니다 ...해야 할 일 - 절대 모릅니다! 누구든지 프로그램에서 잼을 찾을 수 있습니까?




5분 EURUSD에서는 정기적으로 주문을 열고 닫습니다. 수정에 대한 작은 문제는 종종 동일한 값으로 수정을 시도하므로 자주 오류가 발생합니다.
 

안녕 모두. 도움말, plz, 초보자:

질문의 본질

1) 기간 1일.

2) 열려 있는 OrderSend(...)가 있습니다. 그에게 SL과 TP. 그러나 중지 및 손실에 대한 추가 조건으로 주문이 개설된 순간부터 18시간 이내에 지속되고 현재 가격 으로 마감되도록 지정해야 합니다.

즉, 3가지 조건 중 하나가 충족되어야 합니다.

1. 손절매 발동

또는

2. 이익실현 발동

또는

3. 때문에 손절매도 테이크업도 통하지 않은 경우, 해당 포지션은 오픈 시점부터 18시간 후 해당 시점의 현재 가격으로 청산됩니다.

이 임시 조건을 설정하는 방법은 다음과 같습니다. 응???


질문 2:

이벤트가 발생해야 하는 조건을 올바르게 작성하는 방법(1일 기간):

- 현재 막대의 CLOSE는 C 이전보다 크고 이전 C보다 크며 C 이전도 C 이전보다 큽니다.


세게 치지 마세요. 그전에는 루무스에 앉았는데 지금은 재건축 중...