생성된 화살표 표시기 . 신의 도움으로 그들은 무엇을 이해했는지 창조했습니다. 이제 나는 결합하여 2를 하나로 만들기로 결정했습니다 ....... 아이디어의 본질 : MACD가 있고 +와 -에서 특정 수준을 설정합니다. MACD가 이 수준(+ 및 - 모두) 뒤에 있으면 매수 및 매도 화살표가 나타납니다. 그것은 한 것 같습니다, 그것은 오류없이 컴파일하지만 그러나 그것은 어떻게 든 잘못 작동합니다. 음, 그렇지 않습니다 ....
아마도 누군가는 알고 있을 것입니다: TakeProfitLastClosePos() 함수 중 하나 (마지막 마감 위치 의 TakeProfit 가격 또는 -1반환), TakeProfit 값 을소수점 4자리로 반환하고 DC는 소수점 5자리(EURUSD 쌍)를 제공합니다. 마지막으로 마감된 포지션의 TakeProfit 값 과 다음 주문 배치 가격 의 값은 서로 직접적인 관련이 있기 때문에 다음 주문을 할 수 없습니다. 이 상황에서 벗어나도록 도와주세요? 미리 감사드립니다!!!
double TakeProfitLastClosePos( string sy= "" , int op=- 1 , int mn=- 1 ) {
datetime t;
double r=- 1 ;
int i, k=OrdersHistoryTotal();
if (sy== "0" ) sy= Symbol ();
for (i= 0 ; i<k; i++) {
if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy== "" ) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op< 0 || OrderType()==op) {
if (mn< 0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
r=OrderTakeProfit();
}
}
}
}
}
}
}
return (r);
}
아마도 누군가는 알고 있을 것입니다: TakeProfitLastClosePos() 함수 중 하나 (마지막 마감 위치의 TakeProfit 가격 또는 -1반환), TakeProfit 값 을소수점 4자리로 반환하고 DC는 소수점 5자리(EURUSD 쌍)를 제공합니다. 마지막으로 마감된 포지션의 TakeProfit 값 과 다음 주문 배치 가격 의 값은 서로 직접적인 관련이 있기 때문에 다음 주문을 할 수 없습니다. 이 상황에서 벗어나도록 도와주세요? 미리 감사드립니다!!!
일반적으로 함수는 소수점 이하 모든 유효 자릿수를 포함하는 값을 반환합니다. 소수점 이하 8자리 이상. 기본적으로 4자리 숫자만 표시됩니다. 그러나 DoubleToStr()을 미리 사용하면 다음을 확인할 수 있습니다.
drknn : OrderSend(통화 쌍의 문자 이름.... 음, 기타 매개변수.......)
다중 통화 Expert Advisor의 코드를 이해하도록 도와주세요. 하나의 Expert Advisor가 작업하고 모든 쌍에서 거래를 열어야 합니다.
CodeBase에서 다중 통화 고문 을 찾았지만 무엇이 어디에, 왜 있는지 알 수 없습니다.
테스터에서 이러한 어드바이저를 확인할 수 없고 다중통화 코드에 대한 이해가 없기 때문에 ((일반적인 방식으로 설명하십시오. 이 코드 또는 다른 코드를 기반으로 무엇을 어디서, 왜, 왜 어드바이저가 거래 여기에서 사례를 이해하지 않고 코드를 직접 자르면 작업을 수행할 수 있지만 구현에 대해 결코 이해할 수 없으며 다시 법원에 도움을 요청해야 합니다.
externstring Instrument = "EURUSD" ;
externdouble Lots = 0.1 ;
externint TakeProfit = 50 ;
externint TrailingStop = 0 ;
externint StopLoss = 50 ;
externint FirstOpenLevel = 5 ;
externint LastOpenLevel = 20 ;
externint Slope = 2 ;
externint CloseLevel = 20 ;
int start()
{
double MacdCurrent, MacdPrevious, SignalCurrent, SignalPrevious;
int i, total, p1, p2, p3, p4, p5, p6, p7, p8, p9;
MacdCurrent= iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_MAIN, 0 );
MacdPrevious= iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_MAIN, 1 );
SignalCurrent= iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_SIGNAL, 0 );
SignalPrevious= iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_SIGNAL, 1 );
p1= 0 ; p2= 0 ; p3= 0 ; p4= 0 ; p5= 0 ; p6= 0 ; p7= 0 ; p8= 0 ; p9= 0 ;
OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol()== "EURUSD" ) {p1= 1 ;}
if (OrderSymbol()== "GBPUSD" ) {p2= 1 ;}
if (OrderSymbol()== "USDCHF" ) {p3= 1 ;}
if (OrderSymbol()== "USDJPY" ) {p4= 1 ;}
if (OrderSymbol()== "EURCHF" ) {p5= 1 ;}
if (OrderSymbol()== "EURGBP" ) {p6= 1 ;}
if (OrderSymbol()== "AUDUSD" ) {p7= 1 ;}
if (OrderSymbol()== "USDCAD" ) {p8= 1 ;}
if (OrderSymbol()== "EURJPY" ) {p9= 1 ;}
OrderSelect ( 1 ,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol()== "EURUSD" ) {p1= 1 ;}
if (OrderSymbol()== "GBPUSD" ) {p2= 1 ;}
if (OrderSymbol()== "USDCHF" ) {p3= 1 ;}
if (OrderSymbol()== "USDJPY" ) {p4= 1 ;}
if (OrderSymbol()== "EURCHF" ) {p5= 1 ;}
if (OrderSymbol()== "EURGBP" ) {p6= 1 ;}
if (OrderSymbol()== "AUDUSD" ) {p7= 1 ;}
if (OrderSymbol()== "USDCAD" ) {p8= 1 ;}
if (OrderSymbol()== "EURJPY" ) {p9= 1 ;}
OrderSelect ( 2 ,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol()== "EURUSD" ) {p1= 1 ;}
if (OrderSymbol()== "GBPUSD" ) {p2= 1 ;}
if (OrderSymbol()== "USDCHF" ) {p3= 1 ;}
if (OrderSymbol()== "USDJPY" ) {p4= 1 ;}
if (OrderSymbol()== "EURCHF" ) {p5= 1 ;}
if (OrderSymbol()== "EURGBP" ) {p6= 1 ;}
if (OrderSymbol()== "AUDUSD" ) {p7= 1 ;}
if (OrderSymbol()== "USDCAD" ) {p8= 1 ;}
if (OrderSymbol()== "EURJPY" ) {p9= 1 ;}
OrderSelect ( 3 ,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol()== "EURUSD" ) {p1= 1 ;}
if (OrderSymbol()== "GBPUSD" ) {p2= 1 ;}
if (OrderSymbol()== "USDCHF" ) {p3= 1 ;}
if (OrderSymbol()== "USDJPY" ) {p4= 1 ;}
if (OrderSymbol()== "EURCHF" ) {p5= 1 ;}
if (OrderSymbol()== "EURGBP" ) {p6= 1 ;}
if (OrderSymbol()== "AUDUSD" ) {p7= 1 ;}
if (OrderSymbol()== "USDCAD" ) {p8= 1 ;}
if (OrderSymbol()== "EURJPY" ) {p9= 1 ;}
OrderSelect ( 4 ,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol()== "EURUSD" ) {p1= 1 ;}
if (OrderSymbol()== "GBPUSD" ) {p2= 1 ;}
if (OrderSymbol()== "USDCHF" ) {p3= 1 ;}
if (OrderSymbol()== "USDJPY" ) {p4= 1 ;}
if (OrderSymbol()== "EURCHF" ) {p5= 1 ;}
if (OrderSymbol()== "EURGBP" ) {p6= 1 ;}
if (OrderSymbol()== "AUDUSD" ) {p7= 1 ;}
if (OrderSymbol()== "USDCAD" ) {p8= 1 ;}
if (OrderSymbol()== "EURJPY" ) {p9= 1 ;}
total= OrdersTotal ();
for (i= 0 ;i<total;i++)
{
OrderSelect (i,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol()==Instrument)
{
if (OrderType()==OP_BUY)
{
if (MacdPrevious-SignalPrevious-MacdCurrent+SignalCurrent>CloseLevel* 0.1 * Point )
{
OrderClose(OrderTicket(),OrderLots(),Bid, 3 , Violet );
return ( 0 );
}
if (TrailingStop> 0 )
{
if (Bid-OrderOpenPrice()> Point *TrailingStop)
{
if (OrderStopLoss()<Bid- Point *TrailingStop || OrderStopLoss()== 0 )
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid- Point *TrailingStop,OrderTakeProfit(), 0 , Green );
return ( 0 );
}
}
}
}
if (OrderType()==OP_SELL)
{
if (SignalPrevious-MacdPrevious-SignalCurrent+MacdCurrent>CloseLevel* 0.1 * Point )
{
OrderClose(OrderTicket(),OrderLots(),Ask, 3 , Violet );
return ( 0 );
}
if (TrailingStop> 0 )
{
if (OrderOpenPrice()-Ask> Point *TrailingStop)
{
if (OrderStopLoss()>Ask+ Point *TrailingStop || OrderStopLoss()== 0 )
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+ Point *TrailingStop,OrderTakeProfit(), 0 , Red );
return ( 0 );
}
}
}
}
}
}
total= OrdersTotal ();
if (total< 5 )
{
if ((Instrument== "EURUSD" && p1< 1 ) || (Instrument== "GBPUSD" && p2< 1 ) ||
(Instrument== "USDCHF" && p3< 1 ) || (Instrument== "USDJPY" && p4< 1 ) ||
(Instrument== "EURCHF" && p5< 1 ) || (Instrument== "EURGBP" && p6< 1 ) ||
(Instrument== "AUDUSD" && p7< 1 ) || (Instrument== "USDCAD" && p8< 1 ) ||
(Instrument== "EURJPY" && p9< 1 ))
{
if (MacdCurrent< 0 && MacdCurrent-SignalCurrent>SignalCurrent*FirstOpenLevel*(- 0.01 )
&& MacdCurrent-SignalCurrent<SignalCurrent*LastOpenLevel*(- 0.01 )
&& MacdCurrent-MacdPrevious>MacdPrevious*Slope*(- 0.01 )
&& MacdPrevious-SignalPrevious-MacdCurrent+SignalCurrent<(CloseLevel- 10 )* 0.1 * Point )
{
OrderSend ( Symbol (),OP_BUY,Lots,Ask, 3 ,Ask-StopLoss* Point ,Ask+TakeProfit* Point , "" , 0 , 0 , Green );
return ( 0 );
}
if (MacdCurrent> 0 && SignalCurrent-MacdCurrent>SignalCurrent*FirstOpenLevel* 0.01
&& SignalCurrent-MacdCurrent<SignalCurrent*LastOpenLevel* 0.01
&& MacdPrevious-MacdCurrent>MacdPrevious*Slope* 0.01
&& SignalPrevious-MacdPrevious-SignalCurrent+MacdCurrent<(CloseLevel- 10 )* 0.1 * Point )
{
OrderSend ( Symbol (),OP_SELL,Lots,Bid, 3 ,Bid+StopLoss* Point ,Bid-TakeProfit* Point , "" , 0 , 0 , Red );
return ( 0 );
}
}
}
}
Infinity : 다중 통화 Expert Advisor의 코드를 이해하도록 도와주세요. 하나의 Expert Advisor가 작업하고 모든 쌍에서 거래를 열어야 합니다.
CodeBase에서 다중 통화 Expert Advisor를 찾았지만 무엇이 어디에 있고 왜 그런지 알 수 없습니다. 테스터에서 이러한 어드바이저를 확인할 수 없고 다중통화 코드에 대한 이해가 없기 때문에 ((일반적인 방식으로 설명하십시오. 이 코드 또는 다른 코드를 기반으로 무엇을 어디서, 왜, 왜 어드바이저가 거래 여기에서 사례를 이해하지 않고 코드를 직접 자르면 작업을 수행할 수 있지만 구현에 대해 결코 이해할 수 없으며 다시 법원에 도움을 요청해야 합니다.
이 코드는 연결된 쌍에 대해서만 거래를 시작하기 때문에 적합하지 않습니다. 이는 다음 행에서 볼 수 있습니다.
OrderSend ( Symbol () ,OP_BUY,Lots,Ask, 3 ,Ask-StopLoss* Point ,Ask+TakeProfit* Point , "" , 0 , 0 , Green );
OrderSend ( Symbol () ,OP_SELL,Lots,Bid, 3 ,Bid+StopLoss* Point ,Bid-TakeProfit* Point , "" , 0 , 0 , Red );
Symbol () 함수는 현재 쌍을 반환합니다. 따라서 이 기능 대신 다른 통화 쌍을 열려면 원하는 금융 상품 이름을 입력하기만 하면 됩니다.
이 코드는 연결된 쌍에 대해서만 거래를 시작하기 때문에 적합하지 않습니다. 이는 다음 행에서 볼 수 있습니다.
Symbol () 함수는 현재 쌍을 반환합니다. 따라서 이 기능 대신 다른 통화 쌍을 열려면 원하는 금융 상품 이름을 입력하기만 하면 됩니다.
그게 바로 요점입니다... 제 고문은 설계상 다른 통화 쌍에서 신호를 수신합니다. 신호와 함께 신호를 수신한 통화의 이름이 나옵니다. 순서에서 Symbol() 함수의 위치는 다음과 같습니다 . 통화 쌍의 명목 가치가 할당된 변수. 즉, 신호가 유로에서 온 경우 EURUSD가 할당되고, ene에서 온 경우 USDJPY가 지정되지만 전문가를 포함하여 그는 모든 신호를 볼 수 있지만 자신이 서 있는 통화에 대해서만 엽니다.
내가하고있는 예제 코드는 다음과 같습니다.
//---- ранее на обработке переменная Symb получает значение валютной пары с которой пришол сигнал// далее я сравниваю и пытаюсь открыть ордерif (Symb == "GBPUSD" ) {val = "GBPUSD" ; ticket= OrderSend (val,OP_BUY, 0.1 ,Ask, 3 ,Bid- 20 * Point ,Ask+ 25 * Point , "" , 16384 , 0 , Green );}
if (Symb == "EURUSD" ) {val = "EURUSD" ; ticket= OrderSend (val,OP_BUY, 0.1 ,Ask, 3 ,Bid- 20 * Point ,Ask+ 25 * Point , "" , 16384 , 0 , Green );}
if (Symb == "USDJPY" ) {val = "USDJPY" ; ticket= OrderSend (val,OP_BUY, 0.1 ,Ask, 3 ,Bid- 20 * Point ,Ask+ 25 * Point , "" , 16384 , 0 , Green );}
생성된 화살표 표시기 . 신의 도움으로 그들은 무엇을 이해했는지 창조했습니다. 이제 나는 결합하여 2를 하나로 만들기로 결정했습니다 ....... 아이디어의 본질 : MACD가 있고 +와 -에서 특정 수준을 설정합니다. MACD가 이 수준(+ 및 - 모두) 뒤에 있으면 매수 및 매도 화살표가 나타납니다. 그것은 한 것 같습니다, 그것은 오류없이 컴파일하지만 그러나 그것은 어떻게 든 잘못 작동합니다. 음, 그렇지 않습니다 ....
이것은 작동 지표입니다
와 이렇게 됐어.......
코드에서 뭔가 잘못된 느낌이 들지만 이해가 되지 않습니다 .................................. 불행한 사람에게 TELL .. ... : -))
안녕하세요! KimIV 의 기능에 대해 Artyom에게 감사드립니다.
아마도 누군가는 알고 있을 것입니다: TakeProfitLastClosePos() 함수 중 하나 (마지막 마감 위치 의 TakeProfit 가격 또는 -1 반환), TakeProfit 값 을 소수점 4자리로 반환하고 DC는 소수점 5자리(EURUSD 쌍)를 제공합니다. 마지막으로 마감된 포지션의 TakeProfit 값 과 다음 주문 배치 가격 의 값은 서로 직접적인 관련이 있기 때문에 다음 주문을 할 수 없습니다. 이 상황에서 벗어나도록 도와주세요? 미리 감사드립니다!!!
안녕하세요! KimIV 의 기능에 대해 Artyom에게 감사드립니다.
아마도 누군가는 알고 있을 것입니다: TakeProfitLastClosePos() 함수 중 하나 (마지막 마감 위치의 TakeProfit 가격 또는 -1 반환), TakeProfit 값 을 소수점 4자리로 반환하고 DC는 소수점 5자리(EURUSD 쌍)를 제공합니다. 마지막으로 마감된 포지션의 TakeProfit 값 과 다음 주문 배치 가격 의 값은 서로 직접적인 관련이 있기 때문에 다음 주문을 할 수 없습니다. 이 상황에서 벗어나도록 도와주세요? 미리 감사드립니다!!!
일반적으로 함수는 소수점 이하 모든 유효 자릿수를 포함하는 값을 반환합니다. 소수점 이하 8자리 이상. 기본적으로 4자리 숫자만 표시됩니다. 그러나 DoubleToStr()을 미리 사용하면 다음을 확인할 수 있습니다.
OrderSend(통화 쌍의 문자 이름.... 음, 기타 매개변수.......)
다중 통화 Expert Advisor의 코드를 이해하도록 도와주세요. 하나의 Expert Advisor가 작업하고 모든 쌍에서 거래를 열어야 합니다.
CodeBase에서 다중 통화 고문 을 찾았지만 무엇이 어디에, 왜 있는지 알 수 없습니다.
테스터에서 이러한 어드바이저를 확인할 수 없고 다중통화 코드에 대한 이해가 없기 때문에 ((일반적인 방식으로 설명하십시오. 이 코드 또는 다른 코드를 기반으로 무엇을 어디서, 왜, 왜 어드바이저가 거래 여기에서 사례를 이해하지 않고 코드를 직접 자르면 작업을 수행할 수 있지만 구현에 대해 결코 이해할 수 없으며 다시 법원에 도움을 요청해야 합니다.
와 이렇게 됐어.......
코드에서 뭔가 잘못된 느낌이 들지만 이해가 되지 않습니다 .......
다중 통화 Expert Advisor의 코드를 이해하도록 도와주세요. 하나의 Expert Advisor가 작업하고 모든 쌍에서 거래를 열어야 합니다.
CodeBase에서 다중 통화 Expert Advisor를 찾았지만 무엇이 어디에 있고 왜 그런지 알 수 없습니다.
테스터에서 이러한 어드바이저를 확인할 수 없고 다중통화 코드에 대한 이해가 없기 때문에 ((일반적인 방식으로 설명하십시오. 이 코드 또는 다른 코드를 기반으로 무엇을 어디서, 왜, 왜 어드바이저가 거래 여기에서 사례를 이해하지 않고 코드를 직접 자르면 작업을 수행할 수 있지만 구현에 대해 결코 이해할 수 없으며 다시 법원에 도움을 요청해야 합니다.
이 코드는 연결된 쌍에 대해서만 거래를 시작하기 때문에 적합하지 않습니다. 이는 다음 행에서 볼 수 있습니다.
Symbol () 함수는 현재 쌍을 반환합니다. 따라서 이 기능 대신 다른 통화 쌍을 열려면 원하는 금융 상품 이름을 입력하기만 하면 됩니다.
이 코드는 연결된 쌍에 대해서만 거래를 시작하기 때문에 적합하지 않습니다. 이는 다음 행에서 볼 수 있습니다.
Symbol () 함수는 현재 쌍을 반환합니다. 따라서 이 기능 대신 다른 통화 쌍을 열려면 원하는 금융 상품 이름을 입력하기만 하면 됩니다.
쉽지 않다. 또한 Point 를 원하는 값으로 변경하고 Ask를 수행해야 합니다. 예 입찰도.
이 코드는 연결된 쌍에 대해서만 거래를 시작하기 때문에 적합하지 않습니다. 이는 다음 행에서 볼 수 있습니다.
Symbol () 함수는 현재 쌍을 반환합니다. 따라서 이 기능 대신 다른 통화 쌍을 열려면 원하는 금융 상품 이름을 입력하기만 하면 됩니다.
그게 바로 요점입니다... 제 고문은 설계상 다른 통화 쌍에서 신호를 수신합니다. 신호와 함께 신호를 수신한 통화의 이름이 나옵니다. 순서에서 Symbol() 함수의 위치는 다음과 같습니다 . 통화 쌍의 명목 가치가 할당된 변수. 즉, 신호가 유로에서 온 경우 EURUSD가 할당되고, ene에서 온 경우 USDJPY가 지정되지만 전문가를 포함하여 그는 모든 신호를 볼 수 있지만 자신이 서 있는 통화에 대해서만 엽니다.
내가하고있는 예제 코드는 다음과 같습니다.