첫 번째 실험으로 저는 다음 알고리즘을 구현하기로 결정했습니다. 볼린저 밴드가 좁은 통로로 수렴한 후 얼마 후 시장이 위 또는 아래로 급격한 움직임이 있을 것으로 예상할 수 있습니다. Expert Advisor에서 나는 볼린저 밴드의 상태를 분석하고, 볼린저 밴드가 닫힐 때( 델타 포인트 ), 시장이 희망을 갖고 하향 방향(바닥 라인 아래의 스텝오픈 포인트)으로 매도하기 위해 보류 주문을 넣습니다. 이 방향으로 급격히 움직일 것입니다. 시장이 다른 방향으로 갔다면 이 주문을 삭제하기만 하면 됩니다.
externdouble Delta= 800.0 ; // Ширина канала, которую мы считаем достаточно узкой чтобы ожидать скоро серьезного движения в одну из сторонexterndouble StepOpen= 150.0 ; // Отступ от линии Боллинджера для открытия отложенного ордераexterndouble TP= 350.0 ; // Take Profitexterndouble SL= 400.0 ; // Stop Lossint start()
{
double T1= iBands ( NULL , 0 , 20 , 2 , 0 , PRICE_CLOSE ,MODE_UPPER, 0 ); // верхняя линия Боллинджераdouble T2= iBands ( NULL , 0 , 20 , 2 , 0 , PRICE_CLOSE ,MODE_LOWER, 0 ); // нижняя линия Боллинджераif ((Ask>T1+StepOpen* Point )&& OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES)==true) OrderDelete ( 0 ); // если рынок пошел вверх – то удаляем отложенный ордерif ( OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES)==true) return ( 0 ); // если есть ранее открытый ордер – прекращаем выполнение текущей итерации советникаif (T1-T2<Delta* Point ) { // если линии Боллинджера сблизились ближе чем на Delta пунктов начинаем операцию открытия ордераdouble PriceOpen= NormalizeDouble (T2-StepOpen* Point , 5 ); // вычисляем цену открытияdouble StopLoss= NormalizeDouble (T2-StepOpen* Point +SL* Point , 5 ); // вычисляем StopLossdouble TakeProfit= NormalizeDouble (T2-StepOpen* Point -TP* Point , 5 ); // вычисляем TakeProfitOrderSend ( Symbol (),OP_SELL, 0.1 ,PriceOpen, 5 ,StopLoss,TakeProfit, 0 , 0 , 0 , Green ); // открываем ордер на продажу
}
return ( 0 );
}
알고리즘이 불안정하여 짧은 시간에 2개의 주문을 여는 경우도 있고, 지속적으로 OrderSend Error 130 및 OrderSend Error 138 오류를 생성하고, 시장이 반대 방향으로 이동하면 열린 주문을 삭제해도 전혀 작동하지 않습니다.
안녕하세요, 친애하는 포럼 사용자 여러분. 고문을 변경하는 데 도움이 필요합니다. 모든 것을 그대로 두고 액션(buy/sell)을 (sell/buy)로 변경하면 테스트 결과 상승 추세 에서는 매도가 발생하고 하락 추세에서는 구매가 발생했습니다. BUY 코드를 SELL로 간단히 변경하면 나에게 아무것도 제공하지 않거나, 내가 놓친 것 미리 감사드립니다.
iMA는 어떻게 계산됩니까?
iMA 기능이 어떻게 계산되는지 찾을 수 있는 곳(또는 분류되어 있는지)
저는 특히 MODE_LWMA에 관심이 있습니다.
내 취향에 맞게 보고 수정하고 싶지만 소스 코드를 구글링하기에는 뭔가 잘 되지 않는다.
https://docs.mql4.com/en/indicators/iMA
공식이 필요하므로 Google에서도 쉽게 찾을 수 있습니다.
https://docs.mql4.com/en/indicators/iMA
공식이 필요하므로 Google에서도 쉽게 찾을 수 있습니다.
아니면 "선형 가중"이라는 용어를 이해하지 못하셨습니까?
iMA 기능이 어떻게 계산되는지 찾을 수 있는 곳(또는 분류되어 있는지)
저는 특히 MODE_LWMA에 관심이 있습니다.
내 취향에 맞게 보고 수정하고 싶지만 소스 코드를 구글링하기에는 뭔가 잘 되지 않는다.
안녕하세요!
첫 번째 실험으로 저는 다음 알고리즘을 구현하기로 결정했습니다. 볼린저 밴드가 좁은 통로로 수렴한 후 얼마 후 시장이 위 또는 아래로 급격한 움직임이 있을 것으로 예상할 수 있습니다. Expert Advisor에서 나는 볼린저 밴드의 상태를 분석하고, 볼린저 밴드가 닫힐 때( 델타 포인트 ), 시장이 희망을 갖고 하향 방향(바닥 라인 아래의 스텝오픈 포인트)으로 매도하기 위해 보류 주문을 넣습니다. 이 방향으로 급격히 움직일 것입니다. 시장이 다른 방향으로 갔다면 이 주문을 삭제하기만 하면 됩니다.
알고리즘이 불안정하여 짧은 시간에 2개의 주문을 여는 경우도 있고, 지속적으로 OrderSend Error 130 및 OrderSend Error 138 오류를 생성하고, 시장이 반대 방향으로 이동하면 열린 주문을 삭제해도 전혀 작동하지 않습니다.조언에 대한 큰 요청! 고맙습니다!
빅터 이바노비치!
너무 많은 플립, 왜 링크를 제공하지 않았습니까? 그들은 코드를... 왜?
//--주 코드
PrevTime=시간[0]; // 제로 바의 여는 시간을 기억
바 오프닝 설정이 있는 경우 여기에 템플릿이 있으며 작동합니다.
큰 요청입니다. 이 기능을 어드바이저에 직접 입력할 수 있습니까? 그림은 하나의 바에서 열린 3개의 주문을 보여줍니다. 그리고 당신은 하나만 필요합니다. 나는 코드를 고칠 수 없습니다. 감사합니다.
안녕하세요 여러분 )))
진입점을 몇 번이나 지나도 1일 1개 주문으로 제한하도록 어드바이저를 도와주세요...
열기 전에 마지막으로 마감된 주문의 이력을 확인하고 일치하면 열지 않도록 유형을 작성하려고합니다 ...
for(int i=0;i<OrdersTotal();i++)
{
if( 주문선택 (i,SELECT_BY_POS, MODE_HISTORY )==true)
{
if(OrderCloseTime()==일()
부서지다;
}
뭔가 짜증나, 도와주세요 plz lamochinka)))))
하나의 바 사이트에서 주문:mql4.com
https://www.mql5.com/ru/forum/102366/page3
고문을 변경하는 데 도움이 필요합니다. 모든 것을 그대로 두고 액션(buy/sell)을 (sell/buy)로 변경하면 테스트 결과 상승 추세 에서는 매도가 발생하고 하락 추세에서는 구매가 발생했습니다. BUY 코드를 SELL로 간단히 변경하면 나에게 아무것도 제공하지 않거나, 내가 놓친 것
미리 감사드립니다.