여기 고문이 있습니다. 프랙탈 위/아래 위치를 엽니다 . 프랙탈 상단에서 스톱을 5포인트 높게(구매하는 경우), 5포인트 낮게(판매하는 경우) 만드는 방법???
P_up0 =iCustom(0,0,"Ценовой канал", Chperiod ,0,0);
P_down0 =iCustom(0,0,"Ценовой канал", Chperiod ,1,0);
P_up1 =iCustom(0,0,"Ценовой канал", Chperiod ,0,1);
P_down1 =iCustom(0,0,"Ценовой канал", Chperiod ,1,1);
Up =iCustom(0,0,"olyakish_fractals_02(для Skonti)",15,150,"Процент для отсеивания по объему",110,1,3);
Down =iCustom(0,0,"olyakish_fractals_02(для Skonti)",15,150,"Процент для отсеивания по объему",110,3,3);//задали все данные
total =OrdersTotal();if( total <1){// Проверка свободной маржиif(AccountFreeMargin()<(1000* Lots )){Print("We have no money. Free Margin = ",AccountFreeMargin());return(0);}// Условие открытие позиции BUYif( Up > Down ){
Lots = GetSizeLot ();
ticket =OrderSend(Symbol(),OP_BUY, Lots ,Ask,3,0,0,"",16384,0,Green);if( ticket >0){if(OrderSelect( ticket , SELECT_BY_TICKET , MODE_TRADES ))Print("BUY order opened : ",OrderOpenPrice());}elsePrint("Error opening BUY order : ",GetLastError());return(0);}// Условие открытие позиции SELLif( Up < Down ){
Lots = GetSizeLot ();
ticket =OrderSend(Symbol(),OP_SELL, Lots ,Bid,3,0,0,"",16384,0,Red);if( ticket >0){if(OrderSelect( ticket , SELECT_BY_TICKET , MODE_TRADES ))Print("SELL order opened : ",OrderOpenPrice());}elsePrint("Error opening SELL order : ",GetLastError());return(0);}return(0);}for( cnt =0; cnt < total ; cnt ++){OrderSelect( cnt , SELECT_BY_POS , MODE_TRADES );if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol()){if(OrderType()==OP_BUY)// длинная позиция открыта{// условие закрытие длинной позицииif( P_down1 > P_down0 || Up < Down ){OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);return(0);}if( TrailingStop >0){if(Bid-OrderOpenPrice()>Point* TrailingStop ){if(OrderStopLoss()<Bid-Point* TrailingStop &&OrderStopLoss()!=OrderOpenPrice()+ X *Point){OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+ X *Point,OrderTakeProfit(),0,Green);return(0);}}}}else{// условие закрытия короткой позицииif( P_up1 < P_up0 || Up > Down ){OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet);return(0);}if( TrailingStop >0){if((OrderOpenPrice()-Ask)>(Point* TrailingStop )){if(NormalizeDouble(OrderStopLoss(),Digits)!=NormalizeDouble(OrderOpenPrice()- X *Point,Digits)){OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()- X *Point,OrderTakeProfit(),0,Red);return(0);}}}}}}return(0);}
여기서는 Price Channel을 사용했습니다.
// условие закрытия короткой позицииif( P_up1 < P_up0 || Up > Down ){OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet);return(0);}
그리고
// условие закрытие длинной позицииif( P_down1 > P_down0 || Up < Down ){OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);return(0);}
포지션이 열린 프랙탈의 L 또는 H를 지정하기가 어렵습니다!
이 정도??
if(NormalizeDouble(MathAbs(High[ i ]-5),Digits)< Price )
호출한다는 것이 무엇을 의미하는지 명확하지 않습니다. 전역 프로그램 변수에서 - 위치의 여는 프랙탈의 막대의 시간을 기억하고, 막대의 시간까지 iBars ()를 통해 막대의 수를 압니다. - 프랙탈의 가격을 기억하십시오. - 위/아래로 기억 그리고 무엇을 다시 호출합니까?
if( ticket >0){if(OrderSelect( ticket , SELECT_BY_TICKET , MODE_TRADES )){Print("BUY order opened : ",OrderOpenPrice());for( i =0; i <50; i ++){ f =iFractals(NULL,0,MODE_UPPER, i );if( f !=0)break;}
UfractalBuy =High[ i ];for( i =0; i <50; i ++){ f =iFractals(NULL,0,MODE_LOWER, i );if( f !=0)break;}
LfractalBuy =Low[ i ];}}
오 :-)
감사하다!
안녕하세요 감정사님들!
여기 고문이 있습니다. 프랙탈 위/아래 위치를 엽니다 . 프랙탈 상단에서 스톱을 5포인트 높게(구매하는 경우), 5포인트 낮게(판매하는 경우) 만드는 방법???
여기서는 Price Channel을 사용했습니다.
그리고포지션이 열린 프랙탈의 L 또는 H를 지정하기가 어렵습니다!
이 정도??
그래서 우리는 최하위 숫자의 가격을 곱합니다.
여기서 내가 틀렸다. 고맙습니다.
위치가 열린 프랙탈 의 상단을 설정하는 방법????
- 우리는 표준 iFractals ()의 다음과 같은 차이점을 봅니다.
1. 프랙탈 인덱스 표시기는 Hi/Lo와 정확히 동일합니다.
2. 존재하지 않는 프랙탈 값 ==0
추신: 우리는 이 주기에 의해 포지션에서 되돌아보고 있습니다. 포지션을 열 때, 기억하십시오.
전역 프로그램 변수에서
- 위치의 여는 프랙탈의 막대의 시간을 기억하고, 막대의 시간까지 iBars ()를 통해 막대의 수를 압니다.
- 프랙탈의 가격을 기억하십시오.
- 위/아래로 기억
그리고 무엇을 다시 호출합니까?
모든 블록 위에
구매 주문을 열 때 가장 가까운 프랙탈을 기록하십시오.
구매 주문 마감을 위한 다른 조건 입력