MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 236

 
Yaroslav Nykula :

... USD가 있는 모든 통화 쌍을 전달 ...

코드에 거래 자금의 사용된 마진 계산이 있다고 가정합니다. USD가 아닌 계좌를 개설하고 테스트가 통과하는지 확인하십시오.
 

코드에 거래 자금의 사용된 마진 계산이 있다고 가정합니다. USD가 아닌 계좌를 개설하고 테스트가 통과하는지 확인하십시오.



코드에 "거래 자산의 사용된 마진" 계산이 없습니다... 그리고 내 첫 번째 게시물의 끝에서 나는 알아차렸습니다.   "테스터에서 입금 통화 유형을 전환해도 문제가 해결되지 않습니다."

 
Yaroslav Nykula :

코드에는 "거래 자산의 사용된 마진" 계산이 없습니다... 그리고 내 첫 번째 게시물의 끝에서 나는 알아차렸습니다.   "테스터에서 입금 통화 유형을 전환해도 문제가 해결되지 않습니다."

그런 다음 내 텔레파시 능력이 끝났습니다. 코드를 배치하십시오.

 

질문 죄송합니다. 버퍼를 사용하여 Expert Advisor에 외부 지표를 삽입할 수 있습니다... 하지만 이 지표에는 버퍼가 없습니다. 어떻게 상한가와 하한 가격을 얻을 수 있습니까?




//+------------------------------------------------------------------+

//|                                                trendlinesDay.mq4 |

//|                      Copyright © 2008, MetaQuotes Software Corp. |

//|                                        https://www.metaquotes.net |

//+------------------------------------------------------------------+

#property copyright "nsi2000"

#property link      "http://www.expert-mt4.nm.ru"

//----

#property indicator_chart_window

//---- input parameters

extern int nPeriod=10;

extern int Limit=350;

   double Up[];

   double Dn[];

///---- int Widners Oscilator

int cnt,nCurBar=0;

//+------------------------------------------------------------------+

//| Custom indicator initialization function                         |

//+------------------------------------------------------------------+

int init()

  {      

//---- Output in Char

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

     {

      ObjectCreate("WSO-"+cnt,OBJ_HLINE,0,0,0);

      ObjectSet("WSO-"+cnt,OBJPROP_COLOR,Red);

      if(cnt<5)

        {

         ObjectCreate("Trend DN-"+cnt,OBJ_TREND,0,0,0,0,0);

         ObjectSet("Trend DN-"+cnt,OBJPROP_COLOR,Magenta);

        }

      //----

      ObjectCreate("WRO-"+cnt,OBJ_HLINE,0,0,0);

      ObjectSet("WRO-"+cnt,OBJPROP_COLOR,Blue);

      if(cnt<5)

        {

         ObjectCreate("Trend UP-"+cnt,OBJ_TREND,0,0,0,0,0);

         ObjectSet("Trend Up-"+cnt,OBJPROP_COLOR,Aqua);

        }

     }

//----

   return(0);

  }

//+------------------------------------------------------------------+

//| Custor indicator deinitialization function                       |

//+------------------------------------------------------------------+

int deinit()

  {

//---- TODO: add your code here

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

     {

      ObjectDelete("Trend UP-"+cnt);

      ObjectDelete("Trend DN-"+cnt);

      ObjectDelete("WSO-"+cnt);

      ObjectDelete("WRO-"+cnt);

     }

//----

   return(0);

  }

//+------------------------------------------------------------------+

//| Custom indicator iteration function                              |

//+------------------------------------------------------------------+

int start()

  {

//---- TODO: add your code here


   double r1,r2,r3,r4,r5,r6;

   int rt1,rt2,rt3,rt4,rt5,rt6;

   double s1,s2,s3,s4,s5,s6;

   int st1,st2,st3,st4,st5,st6;


//---- Линии сопротивления и поддержки

   if(Bars<Limit) Limit=Bars-nPeriod;

   for(nCurBar=Limit; nCurBar>0; nCurBar--)

     {

      if(Low[nCurBar+(nPeriod-1)/2]==Low[Lowest(NULL,0,MODE_LOW,nPeriod,nCurBar)])

        {

         s6=s5; s5=s4; s4=s3; s3=s2; s2=s1; s1=Low[nCurBar+(nPeriod-1)/2];

         st6=st5; st5=st4; st4=st3; st3=st2; st2=st1; st1=nCurBar+(nPeriod-1)/2;

        }

      if(High[nCurBar+(nPeriod-1)/2]==High[Highest(NULL,0,MODE_HIGH,nPeriod,nCurBar)])

        {

         r6=r5; r5=r4; r4=r3; r3=r2; r2=r1; r1=High[nCurBar+(nPeriod-1)/2];

         rt6=rt5; rt5=rt4; rt4=rt3; rt3=rt2; rt2=rt1; rt1=nCurBar+(nPeriod-1)/2;

        }

     }

//---- Move Object in Chart


   ObjectMove("Trend DN-0",1,Time[st1],s1);

   ObjectMove("Trend DN-0",0,Time[st2],s2);


//----

   ObjectMove("Trend UP-0",1,Time[rt1],r1);

   ObjectMove("Trend UP-0",0,Time[rt2],r2);

//----

   return(0);

  }

//+------------------------------------------------------------------+


 
Vyacheslav Kornev :

질문 죄송합니다. 버퍼를 사용하여 외부 지표를 EA에 삽입할 수 있습니다... 하지만 이 지표에는 버퍼가 없습니다. 어떻게 상한가와 하한 가격을 얻을 수 있습니까?


"Trend DN-0", "Trend UP-0"(지표가 일부 수준을 나타내는 선)이라는 이름의 차트에서 그래프 개체 c를 가져 와서 필요한 데이터를 읽습니다.

 
Maxim Kuznetsov :

"Trend DN-0", "Trend UP-0"(지표가 일부 수준을 나타내는 선)이라는 이름의 차트에서 그래프 개체 c를 가져 와서 필요한 데이터를 읽습니다.


어떻게 써주세요? 지표 자체에서합니까? 그런 다음 이 값에서 2개의 버퍼를 만들어 EA에서 사용하시겠습니까?

가격을 취하는 방법을 어디에 쓰나요?

 
Vyacheslav Kornev :

어떻게 써주세요? 지표 자체에서합니까? 그런 다음 이 값에서 2개의 버퍼를 만들어 EA에서 사용하시겠습니까?

가격을 가져오는 방법을 어디에 쓰세요?

표시기에는 이미 두 버퍼를 계산하고 그릴 수 있는 모든 데이터가 있습니다.

그리고 당신은 지표를 변경하지 않고 고문으로부터 지표가 그린 선의 데이터를 읽으라는 제안을 받았습니다.
사실, 이것은 테스터 사용에 제한을 가합니다. 시각적 모드에서만 어드바이저를 테스트할 수 있습니다.

 
Artyom Trishkin :

표시기에는 이미 두 버퍼를 계산하고 그릴 수 있는 모든 데이터가 있습니다.

그리고 당신은 지표를 변경하지 않고 고문으로부터 지표가 그린 선의 데이터를 읽으라는 제안을 받았습니다.
사실, 이것은 테스터 사용에 제한을 가합니다. 시각적 모드에서만 어드바이저를 테스트할 수 있습니다.


즉, 지표에 적어야합니다

#속성 표시기_버퍼 2

이중 BufferUp[], BufferDn[];


int OnInit()

{

SetIndexBuffer (0, BufferUp)

SetIndexBuffer(1, BufferDn)

}



그리고 정확히 무엇으로? 이 2개의 버퍼를 연결해야 합니까?

 
Vyacheslav Kornev :

즉, 지표에 적어야합니다

#속성 표시기_버퍼 2

이중 BufferUp[], BufferDn[];


int OnInit()

{

SetIndexBuffer(0, 버퍼업)

SetIndexBuffer(1, BufferDn)

}



그리고 정확히 무엇으로? 이 2개의 버퍼를 연결해야 합니까?

보세요: 코드에서 줄이 움직이고 있습니다.

 ObjectMove ( "Trend DN-0" , 1 , Time [st1],s1);
ObjectMove ( "Trend DN-0" , 0 , Time [st2],s2);
//----
ObjectMove ( "Trend UP-0" , 1 , Time [rt1],r1);
ObjectMove ( "Trend UP-0" , 0 , Time [rt2],r2);

선의 기준점의 시간은 - 시간[st1], 시간[st2] 및 이 기준점 s1, s2의 가격 - 한 선에 대해,
시간[rt1], 시간[rt2], r1, r2 - 다른 라인용.

직선의 방정식을 사용하여 이러한 점 사이의 각 막대에 대한 버퍼 값을 계산하고 이 값을 버퍼에 입력할 수 있습니다.

 
Artyom Trishkin :

보세요: 코드에서 줄이 움직이고 있습니다.

선의 기준점의 시간은 - 시간[st1], 시간[st2] 및 이 기준점 s1, s2의 가격 - 한 선에 대해,
시간[rt1], 시간[rt2], r1, r2 - 다른 라인용.

직선 방정식을 사용하여 이러한 점 사이의 각 막대에 대한 버퍼 값을 계산하고 이 값을 버퍼에 입력할 수 있습니다.


즉, 막대 위의 선의 가격을 그대로 받아들일 수는 없습니다... 저는 직선의 방정식을 어떻게 계산할 지 모릅니다. 가능하다면 어떻게 보여야 하는지 쓰세요.

그리고 일반적으로 값은 점 사이가 아니라 0 또는 1 bar 이상이어야 합니다.