좋은 사람들, 도와주세요. 나는 그것을 이해할 수 없습니다. TrailingStop이 제대로 작동하지 않습니다. SELL에서 거래가 열리면 흔적이 잘 작동하지만 BUY가 열리면 어떤 이유로 든 즉시 중지됩니다. 수정 가능. 오류가 어디에 있는지 알 수 없습니다. 코드는 다음과 같습니다.
외부 정수 TP = 50; 외부 정수 SL = 50; extern int 후행 = 15;
정수 초기화() {반환(0);} 정수 초기화() {반환(0);}
정수 시작() { //========= 손익분기점 계산 ====== 정수 나; 더블 랏BUY=0; 이중 lotSEL=0; 이중 합계BUY=0; 이중합SEL=0;
(i=0; i<OrdersTotal(); i++) { if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) 계속; if (OrderSymbol()!=Symbol()) 계속 if (주문유형()==OP_BUY) { lotBUY=lotsBUY+OrderLots(); sumBUY=sumBUY+OrderLots()*OrderOpenPrice(); }
if (주문 유형()==OP_SELL) { lotSEL=lotsSEL-OrderLots(); sumSEL=sumSEL-OrderLots()*OrderOpenPrice(); } } 두 배 가격BUY=0; if (lotsBUY!=0) priceBUY=sumBUY/lotsBUY; 두 배 가격SEL=0; if (lotsSEL!=0) priceSEL=sumSEL/lotsSEL;
//======== 포지션 개설 =====
이중 MA=iMA(NULL,0,14,0,MODE_SMMA,PRICE_CLOSE,0);
if (OrdersTotal() < 1 && Bid>MA) OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-SL*Point,Ask+TP*Point,0,0,0,Green); if (OrdersTotal() < 1 && Ask<MA) OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Bid+SL*Point,Bid-TP*Point,0,0,0,Red);
그런 순간이 있습니다. TrailingStop 블록에서 priceBUY를 OrderOpenPrice()로 변경하면 모든 것이 작동하지만 시작 가격이 아닌 손익분기 수준에서 추적해야 합니다..... SELL에서 작동합니다. 근데 어째서인지 구매가 안되네요....어디서 오류가 나는지 모르겠네요.....SOS!!!!!!!!
좋은 사람들, 도와주세요. 나는 그것을 이해할 수 없습니다. TrailingStop이 제대로 작동하지 않습니다. SELL에서 거래가 열리면 흔적이 잘 작동하지만 BUY가 열리면 어떤 이유로 든 즉시 중지됩니다. 수정 가능. 오류가 어디에 있는지 알 수 없습니다. 코드는 다음과 같습니다.
extern int TP = 100; extern int SL = 100; extern int Trailing = 15;
int init() {return(0);} int deinit() {return(0);}
int start() { //========= Расчёт уровня безубытка ====== int i; double lotsBUY=0; double lotsSEL=0; double sumBUY=0; double sumSEL=0;
for (i=0; i<OrdersTotal(); i++) { if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue; if (OrderSymbol()!=Symbol()) continue; if (OrderType()==OP_BUY) { lotsBUY=lotsBUY+OrderLots(); sumBUY=sumBUY+OrderLots()*OrderOpenPrice(); }
if (OrderType()==OP_SELL) { lotsSEL=lotsSEL-OrderLots(); sumSEL=sumSEL-OrderLots()*OrderOpenPrice(); } } double priceBUY=0; if (lotsBUY!=0) priceBUY=sumBUY/lotsBUY; double priceSEL=0; if (lotsSEL!=0) priceSEL=sumSEL/lotsSEL;
그런 순간이 있습니다. TrailingStop 블록에서 priceBUY를 OrderOpenPrice()로 변경하면 모든 것이 작동하지만 시작 가격 이 아니라 손익분기 수준에서 추적해야 합니다..... SELL에서는 작동하지만 어째서인지 구매가 안되네요....어디서 오류가 나는지 모르겠네요.....SOS !!!!!!!!
좋은 사람들, 도와주세요. 나는 그것을 이해할 수 없습니다. TrailingStop이 제대로 작동하지 않습니다. SELL에서 거래가 열리면 흔적이 잘 작동하지만 BUY가 열리면 어떤 이유로 든 즉시 중지됩니다. 수정 가능. 오류가 어디에 있는지 알 수 없습니다. 코드는 다음과 같습니다.
그런 순간이 있습니다. TrailingStop 블록에서 priceBUY를 OrderOpenPrice()로 변경하면 모든 것이 작동하지만 시작 가격이 아닌 손익분기 수준에서 추적해야 합니다..... SELL에서는 작동하지만 어째서인지 구매가 안되네요....어디서 오류가 나는지 모르겠네요.....SOS !!!!!!!!
수정하기 전에 priceBUY의 값을 Print() 로 인쇄해 보십시오. 예상과 일치합니까?
좋은 사람들, 도와주세요. 나는 그것을 이해할 수 없습니다. TrailingStop이 제대로 작동하지 않습니다. SELL에서 거래가 열리면 흔적이 잘 작동하지만 BUY가 열리면 어떤 이유로 든 즉시 중지됩니다. 수정 가능. 오류가 어디에 있는지 알 수 없습니다. 코드는 다음과 같습니다.
외부 정수 TP = 50;
외부 정수 SL = 50;
extern int 후행 = 15;
정수 초기화()
{반환(0);}
정수 초기화()
{반환(0);}
정수 시작()
{
//========= 손익분기점 계산 ======
정수 나;
더블 랏BUY=0;
이중 lotSEL=0;
이중 합계BUY=0;
이중합SEL=0;
(i=0; i<OrdersTotal(); i++)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) 계속;
if (OrderSymbol()!=Symbol()) 계속
if (주문유형()==OP_BUY)
{
lotBUY=lotsBUY+OrderLots();
sumBUY=sumBUY+OrderLots()*OrderOpenPrice();
}
if (주문 유형()==OP_SELL)
{
lotSEL=lotsSEL-OrderLots();
sumSEL=sumSEL-OrderLots()*OrderOpenPrice();
}
}
두 배 가격BUY=0;
if (lotsBUY!=0) priceBUY=sumBUY/lotsBUY;
두 배 가격SEL=0;
if (lotsSEL!=0) priceSEL=sumSEL/lotsSEL;
//======== 포지션 개설 =====
이중 MA=iMA(NULL,0,14,0,MODE_SMMA,PRICE_CLOSE,0);
if (OrdersTotal() < 1 && Bid>MA)
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-SL*Point,Ask+TP*Point,0,0,0,Green);
if (OrdersTotal() < 1 && Ask<MA)
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Bid+SL*Point,Bid-TP*Point,0,0,0,Red);
//======= 후행 정지 =======
for(i = 0; i <= OrdersTotal(); i++)
{
주문 선택(i, SELECT_BY_POS, MODE_TRADES);
if (OrderType()==OP_SELL && 후행!=0)
{
if(priceSEL-Ask>=Trailing*Point && OrderStopLoss()>(Ask+Trailing*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Trailing*Point,OrderTakeProfit(),0, CLR_NONE );
}
}
if (OrderType()==OP_BUY && 후행!=0)
{
if(Bid-priceBUY>=Trailing*Point && (Bid-Point*Trailing)>OrderStopLoss())
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*Trailing,OrderTakeProfit(),0,CLR_NONE);
}
}
}
반환(0);
}
그런 순간이 있습니다. TrailingStop 블록에서 priceBUY를 OrderOpenPrice()로 변경하면 모든 것이 작동하지만 시작 가격이 아닌 손익분기 수준에서 추적해야 합니다..... SELL에서 작동합니다. 근데 어째서인지 구매가 안되네요....어디서 오류가 나는지 모르겠네요.....SOS!!!!!!!!
이것은 오류가 아닙니다. 이것은 최소. 균형 - 즉 카운트가 병합됩니다. 통과가 끝나고 다음 입력 매개변수 세트로 새 통과가 시작됩니다. 테스터 최적화 탭의 체크박스와 설정된 한계 값을 참조하세요.
안녕하세요!! 내 고문은 이 곳에서 주문을 제거합니다.
여기 모든 것이 길을 찾기 전에-어쨌든 2-5 개의 주문이있는 동안 정상적으로 청소했습니다. 여기서 원하는 종류의 로프는 새 버전에서 20, 50 각 면에 있습니다. 한마디로 청소가 안됩니다. 음, 두 번, 세 번, 네 번 청소하다가 갑자기 안 돼요!!!
테스터에서 어떻게 보이는지 흥미롭습니다. 일반적으로 가격 근처에서 많은 주문을 제거하지만 전부는 아닙니다!! 어떤 변태가 예상되고, 발명되고, 환상적일 수 있으며, 무엇을 끝내야 합니까?
사실, 글쎄, 모든 것이 방해되기 전에 ??? 전에 닫았나요? 그에게 무엇이 더 필요합니까????
좋은 사람들, 도와주세요. 나는 그것을 이해할 수 없습니다. TrailingStop이 제대로 작동하지 않습니다. SELL에서 거래가 열리면 흔적이 잘 작동하지만 BUY가 열리면 어떤 이유로 든 즉시 중지됩니다. 수정 가능. 오류가 어디에 있는지 알 수 없습니다. 코드는 다음과 같습니다.
extern int TP = 100;
extern int SL = 100;
extern int Trailing = 15;
int init()
{return(0);}
int deinit()
{return(0);}
int start()
{
//========= Расчёт уровня безубытка ======
int i;
double lotsBUY=0;
double lotsSEL=0;
double sumBUY=0;
double sumSEL=0;
for (i=0; i<OrdersTotal(); i++)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()==OP_BUY)
{
lotsBUY=lotsBUY+OrderLots();
sumBUY=sumBUY+OrderLots()*OrderOpenPrice();
}
if (OrderType()==OP_SELL)
{
lotsSEL=lotsSEL-OrderLots();
sumSEL=sumSEL-OrderLots()*OrderOpenPrice();
}
}
double priceBUY=0;
if (lotsBUY!=0) priceBUY=sumBUY/lotsBUY;
double priceSEL=0;
if (lotsSEL!=0) priceSEL=sumSEL/lotsSEL;
//======== Открытие позиции =====
double MA=iMA(NULL,0,14,0,MODE_SMMA,PRICE_CLOSE,0);
if (OrdersTotal() < 1 && Bid>MA)
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-SL*Point,Ask+TP*Point,0,0,0,Green);
if (OrdersTotal() < 1 && Ask<MA)
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Bid+SL*Point,Bid-TP*Point,0,0,0,Red);
//======= Trailing Stop =======
for(i = 0; i <= OrdersTotal(); i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderType()==OP_SELL && Trailing!=0)
{
if(priceSEL-Ask>=Trailing*Point && OrderStopLoss()>(Ask+Trailing*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Trailing*Point,OrderTakeProfit(),0,CLR_NONE);
}
}
if (OrderType()==OP_BUY && Trailing!=0)
{
if(Bid-priceBUY>=Trailing*Point && (Bid-Point*Trailing)>OrderStopLoss())
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*Trailing,OrderTakeProfit(),0,CLR_NONE);
}
}
}
return(0);
}
좋은 사람들, 도와주세요. 나는 그것을 이해할 수 없습니다. TrailingStop이 제대로 작동하지 않습니다. SELL에서 거래가 열리면 흔적이 잘 작동하지만 BUY가 열리면 어떤 이유로 든 즉시 중지됩니다. 수정 가능. 오류가 어디에 있는지 알 수 없습니다. 코드는 다음과 같습니다.
그런 순간이 있습니다. TrailingStop 블록에서 priceBUY를 OrderOpenPrice()로 변경하면 모든 것이 작동하지만 시작 가격이 아닌 손익분기 수준에서 추적해야 합니다..... SELL에서는 작동하지만 어째서인지 구매가 안되네요....어디서 오류가 나는지 모르겠네요.....SOS !!!!!!!!
안녕하세요!! 내 고문은 이 곳에서 주문을 제거합니다.
여기 모든 것이 길을 찾기 전에-어쨌든 2-5 개의 주문이있는 동안 정상적으로 청소했습니다. 여기서 원하는 종류의 로프는 새 버전에서 20, 50 각 면에 있습니다. 한마디로 청소가 안됩니다. 음, 두 번, 세 번, 네 번 청소하다가 갑자기 안 돼요!!!
테스터에서 어떻게 보이는지 흥미롭습니다. 일반적으로 가격 근처에서 많은 주문을 제거하지만 전부는 아닙니다!! 어떤 변태가 예상되고, 발명되고, 환상적일 수 있으며, 무엇을 끝내야 합니까?
사실, 음, 모든 것이 이전과 같았습니까?? 전에 닫았나요? 그에게 무엇이 더 필요합니까????
에이, 그건 작동하지 않을거야.
주문이 마감될 때까지 해당 OrderClosePrice는 0이며 주문을 마감하는 실제 가격으로 대체해야 합니다. SELL 주문의 경우 요청하고 BUY를 위해 입찰하십시오.
에이, 그건 작동하지 않을거야.
주문이 마감될 때까지 해당 OrderClosePrice는 0이며 주문을 마감하는 실제 가격으로 대체해야 합니다. SELL 주문의 경우 요청하고 BUY를 위해 입찰하십시오.
아니오, 마감되지 않은 주문에 대한 OrderClosePrice()는 0이 아닙니다. 확인하십시오. OrderCloseTime() - 예