막대 0에서 선택한 MA의 값과 동일한 PRICE1 및 PRICE2 값과 막대 0의 시간과 동일한 TIME1을 사용하여 TIME2가 미래의 어딘가에 있는 동안 추세 개체를 그립니다.모든 눈금 에서 MA를 다시 계산하고 그에따라 PRICE1 및 PRICE2를 설정하고 모든 새 막대에서 새 TIME1을 설정합니다.
저는 Mark Whistler의 "Volatility 조명" 책을 공부하고 있으며 그가 구축한 지표, 특히 WAVE-PM에 대해 더 깊이 파고드는 데 관심이 있습니다. Whistler는 책에 mq4 코드를 게시했으며 여기에 사본도 있습니다. http://fxcodebase.com/code/viewtopic.php?f=38&t=64011
그러나 내 의도는 내 주요 차트 플랫폼이기 때문에 표시기를 tradingview로 이식하는 것입니다. 기본적인 pinescript를 알고 있지만 원래 스크립트의 코드와 같은 C로 읽기가 정말 어렵습니다. 누군가 코드를 살펴보고 코드가 하는 일의 논리를 대략적으로 말해 줄 수 있습니까?
책에서 Whistler는 지표에 대해 많이 말하지 않고 " 더 큰 분포 내에서 단기 분포의 '압축'을 시각적으로 식별합니다. "
내가 이해한 바에 따르면 오실레이터는 볼린저 밴드 의 상위 밴드와 하위 밴드 사이의 차이를 나타내며 값은 0-1 범위에서 정규화되고 시간에 따라 플롯됩니다.
코드에서 두 개의 오실레이터(ShortBandsPeriod 및 LongBandsPeriod)가 생성되지만 for 주기에 빠져들고 있음을 알 수 있습니다. 일부 수학 계산(제곱, 지수 거듭 제곱, 접선?) 이 있다는 것만 알 수 있습니다. 그러나 불행하게도 왜 그리고 어떻게 만들어지는지 이해할 수 없습니다.
안녕하세요.내 나쁜 영어에 대해 즉시 사과하십시오.어렵지 않다면 어드바이저 코드를 도와주세요.즉, 위치를 열고 닫는 조건을 수정합니다.로봇에 대해 조금 이야기하자면 로봇은 지그재그 표시기의 회전에서 위치를 열고 닫습니다. 이 시스템은 MT4에 지그재그 표시가 있는지 여부에 관계없이 작동해야 합니다.
//+------------------------------------------------------------------+//| Test advisor on ZigZag.mq4 |//| Copyright 2017, MetaQuotes Software Corp. |//| https:/goga342@yandex.ru |//+------------------------------------------------------------------+#property copyright"Copyright c 2010, MQL для тебя."#property link"http://mql4you.ru"#property strictexterndouble lots = 0.01 ; //externint TakeProfit= 60 ; //externint StopLoss= 100 ; //externint Magic= 111111111 ;
externint Slippage= 3 ;
externint ExtDepth= 12 ;
externint ExtDeviation= 5 ;
externint ExtBackstep= 3 ;
datetime Today= 0 ;
double SL,TP;
int ticket;
//±-----------------------------------------------------------------+intOnInit ()
{
if ( Digits == 3 || Digits == 5 )
{
TakeProfit *= 10 ;
StopLoss *= 10 ;
Slippage *= 10 ;
}
return ( INIT_SUCCEEDED );
}
//±-----------------------------------------------------------------+int deinit() { return ( 0 );}
//±-----------------------------------------------------------------+int start()
{
if (DayOfWeek()== 0 || DayOfWeek()== 6 ) return ( 0 ); // в выходные не работаемif (!IsTradeAllowed()) return ( 0 ); // пропустим тик если терминал занят//:проверим открытие новой свечиif (Time[ 0 ]==Today) return ( 0 );
Today=Time[ 0 ];
//:получим значение ZigZag на предыдущей свечеdouble lZZ= iCustom ( NULL , 0 , "ZigZag" ,ExtDepth,ExtDeviation,ExtBackstep, 0 , 1 );
double lZZ_= iCustom ( NULL , 0 , "ZigZag" ,ExtDepth,ExtDeviation,ExtBackstep, 0 , 0 );
// открытие продажif (CountSell()== 0 && lZZ==Low[ 0 ] && lZZ_==Low[ 0 ])
{
SL = NormalizeDouble (Bid+StopLoss* Point , Digits );
TP = NormalizeDouble (Bid-TakeProfit* Point , Digits );
{
ticket= OrderSend ( Symbol (),OP_SELL,lots,Bid,Slippage,SL,TP, "macd sample" ,Magic, 0 ,Red);
if (ticket> 0 )
{
// закрытие продаж// if(CountSell()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
{
for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
{
if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== true )
{
if (OrderMagicNumber()==Magic && OrderType()==OP_SELL)
if (OrderClose(OrderTicket(),OrderLots(),Ask,Slippage, clrNONE ))
Print ( "Ошибка открытия ордера на покупку !" );
}
}
}
}
}
}
// открытие покупок// if(CountBuy()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
{
TP = NormalizeDouble (Ask+TakeProfit* Point , Digits );
SL = NormalizeDouble (Ask-StopLoss* Point , Digits );
{
ticket= OrderSend ( Symbol (),OP_BUY,lots,Ask,Slippage,SL,TP, "macd sample" ,Magic, 0 ,Green);
if (ticket> 0 )
{
// закрытие покупок // if(CountBuy()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])
{
for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
{
if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== true )
{
if (OrderMagicNumber()==Magic && OrderType()==OP_BUY)
if (!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage, clrNONE ))
Print ( "Ошибка открытия ордера на продажу!" );
}
}
}
}
}
}
return ( 0 );
}
//+------------------------------------------------------------------+int CountSell() //проверкна открытие ордеров на продажу
{
int count= 0 ;
for ( int trade= OrdersTotal ()- 1 ; trade>= 0 ; trade--)
{
if ( OrderSelect (trade,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()== Symbol () && OrderMagicNumber()==Magic && OrderType()==OP_SELL)
{
if (OrderType()==OP_SELL)
count++;
}
}
}
return (count);
}
//+------------------------------------------------------------------+int CountBuy() // проверкна открытие ордеров на покупку
{
int count= 0 ;
for ( int trade= OrdersTotal ()- 1 ; trade>= 0 ; trade--)
{
if ( OrderSelect (trade,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()== Symbol () && OrderMagicNumber()==Magic && OrderType()==OP_BUY)
{
if (OrderType()==OP_BUY)
count++;
}
}
}
return (count);
}
//+------------------------------------------------------------------+
이를 위해 IMaOnArray를 구현하는 방법을 잘 모르겠습니다. 나는 그것이 해결책이라고 생각합니까? 히스토그램에 대한 ADX의 이동 평균을 얻을 수 있는 사람이 있습니까?
고맙습니다
안녕하세요 나구이사님!
나는 당신의 우물을 신뢰합니까?
mtf BB 표시기를 조정해 주셔서 감사하고 감사하다는 말을 전하고 싶습니다. 나는 그것이 매력처럼 작동한다고 말할 수 있습니다.
나구이사! 내가 할 수 있는지 추가로 문의하기 위해 이 표시기를 조정할 수 있으므로 피보나치 수 또는 홀수 및 짝수 시간 프레임과 같은 다른 사용자 지정 유명인을 볼 수 있으며 반드시 MT4에만 해당되는 것은 아닙니다. 가능한가요?
코딩 도와주세요.
어떻게 코딩할 수 있어
ma 끝점에 광고 오른쪽 광선.?
코딩 도와주세요.
어떻게 코딩할 수 있어
ma 끝점에 광고 오른쪽 광선.?
막대 0에서 선택한 MA의 값과 동일한 PRICE1 및 PRICE2 값과 막대 0의 시간과 동일한 TIME1을 사용하여 TIME2가 미래의 어딘가에 있는 동안 추세 개체를 그립니다. 모든 눈금 에서 MA를 다시 계산하고 그에 따라 PRICE1 및 PRICE2를 설정하고 모든 새 막대에서 새 TIME1을 설정합니다.
안녕하세요 여러분,
저는 Mark Whistler의 "Volatility 조명" 책을 공부하고 있으며 그가 구축한 지표, 특히 WAVE-PM에 대해 더 깊이 파고드는 데 관심이 있습니다.
Whistler는 책에 mq4 코드를 게시했으며 여기에 사본도 있습니다. http://fxcodebase.com/code/viewtopic.php?f=38&t=64011
그러나 내 의도는 내 주요 차트 플랫폼이기 때문에 표시기를 tradingview로 이식하는 것입니다. 기본적인 pinescript를 알고 있지만 원래 스크립트의 코드와 같은 C로 읽기가 정말 어렵습니다.
누군가 코드를 살펴보고 코드가 하는 일의 논리를 대략적으로 말해 줄 수 있습니까?
책에서 Whistler는 지표에 대해 많이 말하지 않고 " 더 큰 분포 내에서 단기 분포의 '압축'을 시각적으로 식별합니다. "
내가 이해한 바에 따르면 오실레이터는 볼린저 밴드 의 상위 밴드와 하위 밴드 사이의 차이를 나타내며 값은 0-1 범위에서 정규화되고 시간에 따라 플롯됩니다.
코드에서 두 개의 오실레이터(ShortBandsPeriod 및 LongBandsPeriod)가 생성되지만 for 주기에 빠져들고 있음을 알 수 있습니다. 일부 수학 계산(제곱, 지수 거듭 제곱, 접선?) 이 있다는 것만 알 수 있습니다. 그러나 불행하게도 왜 그리고 어떻게 만들어지는지 이해할 수 없습니다.
따라서 어떤 도움, 제안 또는 힌트를 주시면 감사하겠습니다.
안녕하세요, 여러분, 일부 코더가 이 피셔 표시기를 수정하는 데 도움을 줄 수 있습니까?
예, 아주 오래된 표시기이며 다시 칠하지만 몇 가지 중요한 정보가 있습니다. 모든 촛불이 닫힐 때 표시기의 상태를 분석하고 싶습니다. 감사하겠습니다.
우리는 다시 그리기 기능 을 변경하지 않고 자동 새로 고침을 추가하기만 하면 됩니다. 표시기를 새로 고치고 모든 촛불이 닫힐 때 상태를 기록하지만 다음 촛불이 시작되는 동안 자체를 새로 고치지 마십시오.
내 나쁜 영어에 대해 죄송합니다. 미리 감사합니다.
안녕 얘들아!
나는 당신의 모든 것을 잘 믿습니까?
동적 영역 포럼에서 이 표시기를 찾았지만 제대로 작동하지 않으며 관대한 코더가 이를 고칠 수 있다면 매우 감사하겠습니다.
여기에 붙이고,
미리 감사드립니다.
안녕 얘들아!
나는 당신의 모든 것을 잘 믿습니까?
동적 영역 포럼에서 이 표시기를 찾았지만 제대로 작동하지 않으며 관대한 코더가 이를 고칠 수 있다면 매우 감사하겠습니다.
여기에 붙이고,
미리 감사드립니다.
@나구이사 우나다
나는 당신의 우물을 신뢰합니까?
친절하게도, 위의 내 마지막 게시물을 보고 모든 지표가 작동하지 않더라도 최소한 일부를 수정할 수 있는 위치에 있는지 확인하시겠습니까?
귀하의 노력과 시간과 자원에 미리 감사드립니다.
코더 여러분! 누군가 이 EA를 수정하는 데 도움을 줄 수 있습니까?
이것은 x분/시간 동안 지속되는 x분 지정가 주문을 던지는 단순한 매수 저가 매도 고가 EA입니다.
내가 생각하는 개선 사항은 필터를 추가하는 것입니다. 스토캐스틱이나 RSI라고 합시다.
따라서 스토캐스틱이 40보다 낮을 때 = 구매 제한 시작
그리고 스토캐스틱이 60보다 높을 때 = 판매 제한 시작
그리고 그 사이 그것은 아무것도 시작하지 않습니다
이게 가능해? 미리 감사드립니다.
EA를 붙인다
나는 좋은 결과로 장변 또는 단변을 실행하기로 결정하여 EA를 "수동으로" 사용했습니다.
이 시스템은 MT4에 지그재그 표시가 있는지 여부에 관계없이 작동해야 합니다.
//+------------------------------------------------------------------+ //| Test advisor on ZigZag.mq4 | //| Copyright 2017, MetaQuotes Software Corp. | //| https:/goga342@yandex.ru | //+------------------------------------------------------------------+ #property copyright "Copyright c 2010, MQL для тебя." #property link "http://mql4you.ru" #property strict extern double lots = 0.01 ; // extern int TakeProfit= 60 ; // extern int StopLoss= 100 ; // extern int Magic= 111111111 ; extern int Slippage= 3 ; extern int ExtDepth= 12 ; extern int ExtDeviation= 5 ; extern int ExtBackstep= 3 ; datetime Today= 0 ; double SL,TP; int ticket; //±-----------------------------------------------------------------+ int OnInit () { if ( Digits == 3 || Digits == 5 ) { TakeProfit *= 10 ; StopLoss *= 10 ; Slippage *= 10 ; } return ( INIT_SUCCEEDED ); } //±-----------------------------------------------------------------+ int deinit() { return ( 0 );} //±-----------------------------------------------------------------+ int start() { if (DayOfWeek()== 0 || DayOfWeek()== 6 ) return ( 0 ); // в выходные не работаем if (!IsTradeAllowed()) return ( 0 ); // пропустим тик если терминал занят //:проверим открытие новой свечи if (Time[ 0 ]==Today) return ( 0 ); Today=Time[ 0 ]; //:получим значение ZigZag на предыдущей свече double lZZ= iCustom ( NULL , 0 , "ZigZag" ,ExtDepth,ExtDeviation,ExtBackstep, 0 , 1 ); double lZZ_= iCustom ( NULL , 0 , "ZigZag" ,ExtDepth,ExtDeviation,ExtBackstep, 0 , 0 ); // открытие продаж if (CountSell()== 0 && lZZ==Low[ 0 ] && lZZ_==Low[ 0 ]) { SL = NormalizeDouble (Bid+StopLoss* Point , Digits ); TP = NormalizeDouble (Bid-TakeProfit* Point , Digits ); { ticket= OrderSend ( Symbol (),OP_SELL,lots,Bid,Slippage,SL,TP, "macd sample" ,Magic, 0 ,Red); if (ticket> 0 ) { // закрытие продаж // if(CountSell()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0]) { for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--) { if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== true ) { if (OrderMagicNumber()==Magic && OrderType()==OP_SELL) if (OrderClose(OrderTicket(),OrderLots(),Ask,Slippage, clrNONE )) Print ( "Ошибка открытия ордера на покупку !" ); } } } } } } // открытие покупок // if(CountBuy()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0]) { TP = NormalizeDouble (Ask+TakeProfit* Point , Digits ); SL = NormalizeDouble (Ask-StopLoss* Point , Digits ); { ticket= OrderSend ( Symbol (),OP_BUY,lots,Ask,Slippage,SL,TP, "macd sample" ,Magic, 0 ,Green); if (ticket> 0 ) { // закрытие покупок // if(CountBuy()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0]) { for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--) { if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== true ) { if (OrderMagicNumber()==Magic && OrderType()==OP_BUY) if (!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage, clrNONE )) Print ( "Ошибка открытия ордера на продажу!" ); } } } } } } return ( 0 ); } //+------------------------------------------------------------------+ int CountSell() //проверкна открытие ордеров на продажу { int count= 0 ; for ( int trade= OrdersTotal ()- 1 ; trade>= 0 ; trade--) { if ( OrderSelect (trade,SELECT_BY_POS,MODE_TRADES)) { if (OrderSymbol()== Symbol () && OrderMagicNumber()==Magic && OrderType()==OP_SELL) { if (OrderType()==OP_SELL) count++; } } } return (count); } //+------------------------------------------------------------------+ int CountBuy() // проверкна открытие ордеров на покупку { int count= 0 ; for ( int trade= OrdersTotal ()- 1 ; trade>= 0 ; trade--) { if ( OrderSelect (trade,SELECT_BY_POS,MODE_TRADES)) { if (OrderSymbol()== Symbol () && OrderMagicNumber()==Magic && OrderType()==OP_BUY) { if (OrderType()==OP_BUY) count++; } } } return (count); } //+------------------------------------------------------------------+
오프닝 세일
마감 판매
오프닝 구매
마감 매수