포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 113

 
hoz :


사실 맞아요. 너무 늦을 수도 있지만 나는 무언가를 고수하지 않습니다. 다음은 본질적으로 pp의 이익입니다. 이것은 열림에서 닫힘까지의 거리입니다. 그렇다면 그 표현이 사실이 아닌 이유는 무엇입니까?

또한 이 표현식의 결과를 Point 로 나누어야 하기 때문에
 

나는 이미 완전히 무언가를 운전하고 있습니다 ... :) 작업 :

1. 0.1랏의 거래량이 있는 오픈 포지션이 있습니다.

2. 그녀의 TakeProfit은 50핍입니다.

3. PotentialProfit = Lottes*TakeProfit*MarketInfo(Symbol(), MODE_TICKVALUE) 공식을 사용하여 잠재적 이익을 계산합니다.

4. 계산에 따르면 5.00달러(0.1 * 50 * 1.0)의 잠재적 이익을 얻습니다.

포지션은 마이너스가 되고 어느 시점에서 또 다른 평균 매수가 열리지만 많은 0.2

1. 이 두 위치에 대한 손익분기점을 계산합니다. 이 기능은 필요에 따라 오랫동안 사용되어 왔으며 아직까지 불만 사항을 발견하지 못했습니다.

 //+----------------------------------------------------------------------------+
/*
Расчёт уровня БУ для множества по одному инструменту:
сумма лотов = суммарная позиция (СП)
стоимость тика СП = СТ
профит СП = ПСП
Формула расчёта довольно проста:
КП = ПСП / (СТ * СП)
В которой узнаём количество пипс (КП) до уровня БУ относительно текущей цены (ТЦ) символа.
И подставив КП в формулу БУ = ТЦ - КП * Point получаем уровень цены БУ.
В зависимости от направления СП выбирается прибавлять либо отнимать от ТЦ.
*/
double PriceWL( int op, int m1, int m2, double &ll) {
   double Res, pp, pt, tic, NumPP, Prof= 0 , SumLot= 0.00000001 ;
   int i;
   
   pt =MarketInfo(sy,MODE_POINT);
   tic=MarketInfo(sy,MODE_TICKVALUE);                           // Стоимость тика СТ
   for (i= 0 ; i< OrdersTotal (); i++) {
       if ( OrderSelect (i,SELECT_BY_POS)) {
         if (OrderSymbol()!=sy)         continue ;
         if (OrderType()!=op)           continue ;
         if (OrderMagicNumber()==m1 || OrderMagicNumber()==m2) {
            Prof+=(OrderProfit()+OrderSwap()+OrderCommission());   // Суммарный профит позиций ПСП
            SumLot+=OrderLots();                                   // Суммарный лот позиций    СП
            }
         }
      }
   SumLot= MathAbs (NormalizeLot(SumLot));
   NumPP= MathAbs (Prof/(tic*SumLot));                           // Количество пунктов до уровня бу КП
   if (op== 0 ) Res=Ask+NumPP*pt;
   if (op== 1 ) Res=Bid-NumPP*pt;
   ll=SumLot;
   return (Res);
}
//+----------------------------------------------------------------------------+

2. 좋아요. 우리는 손익분기점을 계산했지만... 이 두 포지션을 취하면 0에 가까워질 것입니다. 알겠습니다. 이제 이전에 계산된 $5와 동일한 총 이익을 얻기 위해 필요한 만큼 이 BU 수준에 포인트를 추가해야 합니다.

3. 그리고 여기 뇌에 플러그가 있습니다. 내가 하는 일: 5달러를 받고 이 두 위치(0.1+0.2=0.3)의 총 몫으로 나누고 TICK_VALUE를 곱합니다.

5/(0.3*1.0) = 16.66666입니다. 그런 다음 포인트(0.00016)를 곱하고 손익분기점에 추가합니다.

4. 훌륭합니다. 테이크가 거기로 이전되지만 이 수준에서 마감하는 두 백의 총 이익은 $5와 같지 않은 것 같습니다. 제가 보기에는 더 적은 것 같습니다. 이는 시험 일정에서 확인할 수 있습니다. 총 테이크의 계산된 수준에 따라 하나의 포지션이 청산될 때, 많은 포지션이 청산될 때보다 잔고의 증가가 훨씬 더 크다는 것을 분명히 보여줍니다(차트의 이러한 위치는 그 위에 에퀴티 라인의 모양으로 볼 수 있음) ). 일정:


내가 어디에서 잘못 되었습니까?

총 이익을 출력할 수 있다는 것은 이해하지만... 변수가 얼마인지가 아니라 계산에서 어디가 잘못될 수 있는지 이해하고 싶습니다. 이미 인쇄했습니다.

 
semiromid :

내 가격은 5자리 숫자로 구성되어 있습니다. 예: 1.3221.


4자리를 의미합니다. 소수점 이하 4 또는 5를 의미하며, 5자리 중 132210이 됩니다.
 

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\

프로그래머님! 어드바이저와 지표를 결합하는 방법을 알려주세요.

예를 들어, 자체 알고리즘으로 거래하는 간단한 mo_bidir.mq4 봇을 사용했는데 해당 알고리즘에 따라 거래를 계속 열려면 이 봇이 필요하지만 3x MA 신호 후에는 -

예를 들어 ~에 신호 - 3개의 이동 평균 :

FastEMA>MediumEMA>SlowEMA( 경향 위로 ) - 구매

FastEMA<MediumEMA<SlowEMA ( 경향 아래로 ) – 팔다

Inp_Signal_ThreeEMA_FastPeriod = 8;

Inp_Signal_ThreeEMA_MediumPeriod = 38;

Inp _ 신호 _ ThreeEMA _ SlowPeriod = 48;

또한 어드바이저가 5분 차트에서 계속 거래하고 지표가 일일 또는 4시간 시간대의 신호를 제공하여 봇 설정에서 시간대를 변경할 수 있도록 해야 합니다.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\

반복해서 죄송합니다. 하지만 최소한 어떤 포럼 스레드에 적용할지 알려주십시오. 아니면 새 주제를 만들어야 하나요?

고맙습니다.

 
현재 위치: 작업
 

안녕하세요. OrderSend가 포지션을 열지 않는 이유를 설명해 주십시오.

 if ( NormalizeDouble (Open[ 0 ],Norm)>ma && NormalizeDouble (Bid,Norm)<=ma)

      {

       if (CheckFiltr()>=Filtr) 

         {

         Print (CheckFiltr()+ " Buy" ); <= Это в журнале есть, значит должна открыться сделка.

         for (i= 0 ;i> 5 ;i++)

            {

            res= OrderSend ( Symbol (),OP_BUY,Lot,Ask, 3 ,Bid-Sl* Point , 0 , "OpenBuy" ,Magik, 0 ,Green);

             Print ( "Проверка Бай " +i); <= Этого в журнале нет.

             if (res> 0 ) break ;

             Print ( GetLastError ()); <= Этого в журнале нет.

             Sleep ( 5000 );

            }

         }

      }   
 
for (i=0;i<5;i++)
 
artmedia70 :

나는 이미 완전히 무언가를 운전하고 있습니다 ... :) 작업 :

1. 0.1랏의 거래량이 있는 오픈 포지션이 있습니다.

2. 그녀의 TakeProfit은 50핍입니다.

3. PotentialProfit = Lottes*TakeProfit*MarketInfo(Symbol(), MODE_TICKVALUE) 공식을 사용하여 잠재적 이익을 계산합니다.

4. 계산에 따르면 5.00달러(0.1 * 50 * 1.0)의 잠재적 이익을 얻습니다.

포지션은 마이너스가 되고 어느 시점에서 또 다른 평균 매수가 열리지만 많은 0.2

1. 이 두 포지션에 대한 손익분기점을 계산합니다. 이 기능은 필요에 따라 오랫동안 사용되어 왔으며 아직까지 불만 사항을 발견하지 못했습니다.

2. 좋아요. 우리는 손익분기점을 계산했지만... 이 두 포지션을 취하면 0에 가까워질 것입니다. 알겠습니다. 이제 이전에 계산된 $5와 동일한 총 이익을 얻기 위해 필요한 만큼 이 BU 수준에 포인트를 추가해야 합니다.

3. 그리고 여기 뇌에 플러그가 있습니다. 내가 하는 일: 5달러를 받고 이 두 위치(0.1+0.2=0.3)의 총 몫으로 나누고 TICK_VALUE를 곱합니다.

나는 5/(0.3*1.0) = 16.66666이 있습니다. 그런 다음 포인트(0.00016)를 곱하고 손익분기점에 추가 합니다.

4. 훌륭합니다. 테이크가 거기로 이전되지만 이 수준에서 마감하는 두 백의 총 이익은 $5와 같지 않은 것 같습니다. 제가 보기에는 더 적은 것 같습니다. 이는 시험 일정에서 확인할 수 있습니다. 하나의 포지션이 청산될 때, 총 테이크의 계산된 수준에 따라 많은 포지션이 청산될 때보다 잔고의 증가가 훨씬 더 크다는 것을 분명히 보여줍니다(차트의 이러한 위치는 그 위에 에퀴티 라인의 모양으로 볼 수 있음) ). 일정:


내가 어디에서 잘못 되었습니까?

총 이익을 출력할 수 있다는 것은 이해하지만... 변수가 얼마인지가 아니라 계산에서 어디가 잘못될 수 있는지 이해하고 싶습니다. 이미 인쇄했습니다.

위치가 Sell 인 경우에도 추가 ??
파일:
mr01.mq4  6 kb
 
FAQ :

 for (i= 0 ;i< 5 ;i++)

죄송합니다. 여기에 무엇이 잘못되었는지 설명해주십시오. 내가 이해할 수없는.

 
pako :
위치가 Sell 인 경우에도 추가 ??

나는 Bai의 입장을 말하는 것이다. 너무 세심할 필요는 없습니다. 당연히 매도 포지션의 경우 차감합니다.
사유: