아카이브에는 두 개의 표시기가 있고 내가 작업하고 있는 어드바이저(test-cifr)가 있습니다. 표시기 자체가 쟁기질하지만 어드바이저에 삽입할 수 없습니다((. 어드바이저의 목적은 값을 표시하는 것뿐입니다. 제발 삽입되지 않은 이유와 삽입 방법을 이해하도록 도와주세요.
과거 거래라면 orderProfit 기능을 통해 거래내역 전체를 요약하고 거래 창에서 모든 것이 거기에 있는 것처럼 보입니다.
궁금한데 제 질문에 답이 있으신 분 계신가요?
모든 코드를 EA에 복사
이 같은
//+------------------------------------------------------------------+//| Xrust.mq4 |//| Copyright 2013, MetaQuotes Software Corp. |//| http://www.metaquotes.net |//+------------------------------------------------------------------+#property copyright "Copyright 2013, MetaQuotes Software Corp."#property link "http://www.metaquotes.net"externint TimeFrame= 0 ; //Если=0, то текушийexternstring FrApNam= "Ap" ; //Имя линии соотв.Фракталу вверхexternstring FrDnNam= "Dn" ; //Имя линии соотв.Фракталу внизexterncolor ClAp=Blue; //Цвет линии соотв.Фракталу вверхexterncolor ClDn=Red; //Цвет линии соотв.Фракталу вниз//-----------------------------------------------------------------------------+double FrApPrise,FrDnPrise;
//+------------------------------------------------------------------+//| expert initialization function |//+------------------------------------------------------------------+int init()
{
//----if (TimeFrame== 0 ){TimeFrame= Period ();}
IndicatorShortName( "Factal_Level_Xrust" +TimeFrame);
FrApNam= StringConcatenate (FrApNam,TimeFrame);
FrDnNam= StringConcatenate (FrDnNam,TimeFrame);
//----return ( 0 );
}
//+------------------------------------------------------------------+//| expert deinitialization function |//+------------------------------------------------------------------+int deinit()
{
//----ObjectDelete (FrDnNam);
ObjectDelete (FrApNam);
Comment ( " " );
//----return ( 0 );
}
//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+int start()
{
//----
LineAp();
LineDn();
int diap= MathRound ((FrApPrise-FrDnPrise)/ Point );
Comment ( "\n" , " LineDn = " ,FrDnPrise,
"\n" , " LineAp = " ,FrApPrise,
"\n" , " diap = " ,diap );
//----return ( 0 );
}
//+------------------------------------------------------------------+//-----------------------------------------------------------------------------+// Ищет горизонтальную линию по имени перерисовывает если изменилась цена | //-----------------------------------------------------------------------------+void LineDn(){
FrDnPrise= 0 ;
double FrPrise= NormalizeDouble (FindNearFractal( 0 ,TimeFrame,MODE_LOWER),MarketInfo( Symbol (),MODE_DIGITS));
FrPrise= NormalizeDouble (FrPrise,MarketInfo( Symbol (),MODE_DIGITS));
//Comment(FrPrise);if ( ObjectFind (FrDnNam)== 0 ){
if (ObjectGet(FrDnNam,OBJPROP_PRICE1)==FrPrise){ return ;}}
FrDnPrise=FrPrise;
ObjectDelete (FrDnNam);
SetHLine(ClDn,FrDnNam,FrDnPrise, 0 , 1 );
WindowRedraw();
return ;}
//-----------------------------------------------------------------------------+// Ищет горизонтальную линию по имени перерисовывает если изменилась цена | //-----------------------------------------------------------------------------+void LineAp(){
FrApPrise= 0 ;
double FrPrise= NormalizeDouble (FindNearFractal( 0 ,TimeFrame,MODE_UPPER),MarketInfo( Symbol (),MODE_DIGITS));
FrPrise= NormalizeDouble (FrPrise,MarketInfo( Symbol (),MODE_DIGITS));
if ( ObjectFind (FrApNam)== 0 ){
if (ObjectGet(FrApNam,OBJPROP_PRICE1)==FrPrise){ return ;}}
FrApPrise=FrPrise;
ObjectDelete (FrApNam);
SetHLine(ClAp,FrApNam,FrApPrise, 0 , 1 );
WindowRedraw();
return ;}
//-----------------------------------------------------------------------------+ // Киму Респект и уважуха !!! | //+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 07.10.2006 |//| Описание : Поиск ближайшего фрактала. Возвращает ценовой уровень. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" или NULL - текущий символ) |//| tf - таймфрейм ( 0 - текущий ТФ) |//| mode - тип фрактала (MODE_LOWER|MODE_UPPER) |//+----------------------------------------------------------------------------+double FindNearFractal( string sy= "0" , int tf= 0 , int mode=MODE_LOWER) {
if (sy== "" || sy== "0" ) sy= Symbol ();
double f= 0 ;
int d=MarketInfo(sy, MODE_DIGITS), s;
if (d== 0 ) if ( StringFind (sy, "JPY" )< 0 ) d= 4 ; else d= 2 ;
for (s= 2 ; s< 100 ; s++) {
f= iFractals (sy, tf, mode, s);
if (f!= 0 ) return ( NormalizeDouble (f, d));
}
Print ( "FindNearFractal(): Фрактал не найден" );
return ( 0 );
}
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 30.03.2008 |//| Описание : Установка объекта OBJ_HLINE горизонтальная линия |//+----------------------------------------------------------------------------+//| Параметры: |//| cl - цвет линии |//| nm - наименование ("" - время открытия текущего бара) |//| p1 - ценовой уровень (0 - Bid) |//| st - стиль линии (0 - простая линия) |//| wd - ширина линии (0 - по умолчанию) |//+----------------------------------------------------------------------------+void SetHLine( color cl, string nm= "" , double p1= 0 , int st= 0 , int wd= 1 ) {
if (nm== "" ) nm=DoubleToStr(Time[ 0 ], 0 );
if (p1<= 0 ) p1=Bid;
if ( ObjectFind (nm)< 0 ) ObjectCreate (nm, OBJ_HLINE , 0 , 0 , 0 );
ObjectSet(nm, OBJPROP_PRICE1, p1);
ObjectSet(nm, OBJPROP_COLOR , cl);
ObjectSet(nm, OBJPROP_STYLE , st);
ObjectSet(nm, OBJPROP_WIDTH , wd);
}
또는
기능 사용
intObjectFind ( string name) //Поиск объекта с указанным именемdouble ObjectGet( string name, int prop_id) //Функция возвращает значение указанного свойства объекта
감사하고 건강하시길 바랍니다 artmedia70
안녕하세요.
현재 상품에 대한 차트에 비문을 표시하려면 어떻게 해야 합니까? 미결 주문의 손익.
Expert Advisor에서 포지션 오픈 여부(터미널 켜기/끄기) 확인 및 터미널 닫기 전 마지막 로트 물량 픽업이 어렵습니다.
고맙습니다.
드러스티, 아무도 몰라??
과거 거래라면 orderProfit 기능을 통해 거래의 전체 내역 을 요약하고 거래 창에서 모든 것이 거기에있는 것처럼 보입니다.
궁금한데 제 질문에 답이 있으신 분 계신가요?
그 코드에는 한 가지 결함이 있습니다. 다음은 컨텍스트 에서 제외되었습니다.
요점은 그 표현이
따라서 로트 값은 소수점 이하 한 자리까지 반올림됩니다.
그러나 계속 읽으십시오. 도움이 될 수 있습니다.
정말 그러길 바랍니다. 덕분에. 이 순간을 통합하기 위해 지정된 지점을 연구합니다. 공백을 남기고 싶지 않습니다.
드러스티, 아무도 몰라??
글쎄, 내가 이해하기로는 모든 것이 기초적이다. 기본 지식은 충분합니다.
1. 주문을 검색합니다.
2. 주문이 열려 있는지 확인합니다. 0을 기준으로 한 주문 마감 시간.
3. 주문이 열려 있으면 필요한 데이터, 이익, 유형 등을 표시합니다.
과거 거래라면 orderProfit 기능을 통해 거래내역 전체를 요약하고 거래 창에서 모든 것이 거기에 있는 것처럼 보입니다.
궁금한데 제 질문에 답이 있으신 분 계신가요?
모든 코드를 EA에 복사
이 같은
또는
기능 사용
개체를 찾고 있습니다. 다른 방법은 없습니다.아니오, 삽입되지만 값은 천정에서 절대적으로 나옵니다.
EA 코드에서 표시기 설정을 제거하십시오 . 그런 다음 표시기에 작성된 코드에서 설정을 가져옵니다.
나는 또한 코드에서 설정을 제거하고 벌금을 남겼습니다.