좋은 저녁이에요!
나는 두 쌍을 하나의 고문으로 결합하기로 결정했습니다. 이 작업을 수행했습니다.
그러나 갑자기 그는 의심이 들었다. 그리고 이렇게 했습니다:
extern bool GBP = true ; extern bool EUR = true ; - - - - - - - - - - - - - - - - - - - - int start () { double A = iRSI ( " GBPUSD " , 0 , ..... ) ; double B = iRSI ( " GBPUSD " , 0 , ..... ) ; double C = iRSI ( " EURUSD " , 0 , ..... ) ; double D = iRSI ( " EURUSD " , 0 , ..... ) ; //------------------------------------------------------ if ( GBP ) { //если есть разрешение true if ( A < B ) { double BID = MarketInfo ( " GBPUSD " , MODE_BID ) ; double ASK = MarketInfo ( " GBPUSD " , MODE_ASK ) ; double POINT = MarketInfo ( " GBPUSD " , MODE_POINT ) ; ( ticket = OrderSend .... //ПОКУПАЕМ/ПРОДАЕМ...) }}} //---------------------------------------------------------- if ( EUR ) { //если есть разрешение true if ( C > D ) { double BID = MarketInfo ( " EURUSD " , MODE____BID ) ; double ASK = MarketInfo ( " EURUSD " , MODE____ASK ) ; double POINT = MarketInfo ( " EURUSD " , MODE____POINT ) ; ( ticket = OrderSend .... //ПОКУПАЕМ/ПРОДАЕМ...) }}} //------------------------------------------------------------ return ( 0 ) ; }
모든 것이 온라인과 테스터에서 작동합니다! 제대로 안된거 아닐까요? 다음과 같이 해야 합니다.
extern bool GBP = true ; extern bool EUR = true ; - - - - - - - - - - - - - - - - - - - - int start () { //------------------------------------------------------ if ( GBP ) //если есть разрешение true{ double C = iRSI ( " GBPUSD " , 0 , ..... ) ; double D = iRSI ( " GBPUSD " , 0 , ..... ) ; if ( A < B ) { double BID = MarketInfo ( " GBPUSD " , MODE_BID ) ; double ASK = MarketInfo ( " GBPUSD " , MODE_ASK ) ; double POINT = MarketInfo ( " GBPUSD " , MODE_POINT ) ; ( ticket = OrderSend .... //ПОКУПАЕМ/ПРОДАЕМ...) }}} //---------------------------------------------------------- if ( EUR ) { //если есть разрешение true double C = iRSI ( " EURUSD " , 0 , ..... ) ; double D = iRSI ( " EURUSD " , 0 , ..... ) ; if ( C > D ) { double BID = MarketInfo ( " EURUSD " , MODE____BID ) ; double ASK = MarketInfo ( " EURUSD " , MODE____ASK ) ; double POINT = MarketInfo ( " EURUSD " , MODE____POINT ) ; ( ticket = OrderSend .... //ПОКУПАЕМ/ПРОДАЕМ...) }}} //------------------------------------------------------------ return ( 0 ) ; }두 번째 옵션도 테스터에서 작동하는 것 같습니다.
그러나 가장 좋은 방법은 무엇입니까?
나는 일반적으로 처음에 모든 지표 값을 계산합니다. 즉, 옵션 1이 더 쉽고 혼동되지 않으며 코드가 더 구조화됩니다.
고맙습니다! 대답을 위해. 그리고 또 다른 질문. 후행 정지는 전혀 작동하고 싶지 않습니다. 그들은 테스터에서 별도로 작동합니다!
그리고 온라인에서는 한 쌍이 작동합니다. 그러나 다른 사람에 따르면 고문이 켜지면 즉시 오류를 인쇄합니다.
그러나 거래는 진행 중입니다. 두 번째 쌍에 뒤지지 않고 있습니다.
SL 수정 중 오류 130
int start () { РАСЧЁТ ИНДИКАТОРОВ { ПОКУПКА/ПРОДАЖА } for ( int j = 0 ; j < OrdersTotal () ; j ++ ) { if ( OrderSelect ( j , SELECT_BY_POS , MODE_TRADES )) { if ( OrderSymbol () == " GBPUSD " && OrderMagicNumber () == Magic1 ) { ИДЕТ КОД 1 ТРЕЙЛИНГА. } for ( int r = 0 ; r < OrdersTotal () ; r ++ ) { if ( OrderSelect ( r , SELECT_BY_POS , MODE_TRADES )) { if ( OrderSymbol () == " EURUSD " && OrderMagicNumber () == Magic2 ) { ИДЕТ КОД 2 ТРЕЙЛИНГА } return ( 0 ) ; }후행 코드는 동일하지만 외부 및 내부 코드입니다. 변수는 다른 기호로 지정됩니다.
무엇이 잘못되었는지 알 수 없습니다. 누가 말할 수 있습니까?
int start () { //РАСЧЁТ ИНДИКАТОРОВ //ПОКУПКА/ПРОДАЖА for ( int j = 0 ; j < OrdersTotal () ; j ++ ) { if ( OrderSelect ( j , SELECT_BY_POS , MODE_TRADES )) { if ( OrderSymbol () == " GBPUSD " && OrderMagicNumber () == Magic1 ) { ИДЕТ КОД 1 ТРЕЙЛИНГА. } if ( OrderSymbol () == " EURUSD " && OrderMagicNumber () == Magic2 ) { ИДЕТ КОД 2 ТРЕЙЛИНГА } } } return ( 0 ) ; }
노력하겠습니다. 감사합니다.
효과가 있었던 것 같습니다!
아직 오류가 출력되지 않습니다. 나는 트롤을 확인하기 위해 이익을 기다리고 있습니다.
더 많은 질문이 있습니다. 어렵지 않다면.
다중 통화 실험의 가장 단순한 예는 어디에도 없습니다. 그리고 거기에는 약한 마음이 없습니다. 모든 것이 쌓여 있습니다 - 이해하지 못합니다.
내 코드에는 다음이 있습니다.
double BID = MarketInfo ( " GBPUSD " , MODE_BID ) ; double ASK = MarketInfo ( " GBPUSD " , MODE_ASK ) ; double POINT = MarketInfo ( " GBPUSD " , MODE_POINT ) ; //-------Проверяем условие на покупку------------- if (
그러나 이 사이트의 드문 예에서 유사한 블록이 있는 행이 있습니다.
RefreshRates () ; double BID = MarketInfo ( " GBPUSD " , MODE_BID ) ; double ASK = MarketInfo ( " GBPUSD " , MODE_ASK ) ; double POINT = MarketInfo ( " GBPUSD " , MODE_POINT ) ;
나는 또한이 줄을 붙여 넣었다. 컴파일됨. 하지만 내 작업에는 어떤 변화도 보이지 않습니다.
여기에 얼마나 필요한가? 아마도 내 Expert Advisor에 남겨야 합니까?. 모든 틱에서 작동합니다. 그리고 그것은 값의 배열을 사용합니다 -
//------заполняем массив значениями RSI GBPUSD ----------- double RSI_array [ 30 ] ; int i = 0 ; while ( i < 31 ) { RSI_array [ i ] = iRSI ( " GBPUSD " , 0 , GBPUSD_period , 3 , 3 , MODE_SMA , 0 , MODE_MAIN , i ) ; i ++;
오류가 발생했습니다! "0"대신 - 고문이 작동하는 통화 지표의 변수 - tf를 입력하십시오.
실패 없이 내 전문가처럼 작동합니다. 그리고 트롤이 작동합니다.
그리고 마지막으로 질문 하나. 하나 더 삽입했습니다. 세 번째 커플. 그러나 나는 내장이 아니라 사용자 정의 표시기를 호출했습니다. 이 쌍은 테스터에서 작동합니다. 그러나 온라인 - 그는 원하지 않습니다! 이해할 수 없는 것을 인쇄합니다. 거의 매초마다 이 칠면조가 삽입되고 제거됩니다. ..... - 무엇을 조언할 수 있습니까?
//************************************************ ** ***************
점원! 이번 주에 참석한 모든 전문가 중 당신만이 내 질문에 대답했습니다. 그리고 가장 만족스러운 답변을 받았습니다. ( RefreshRates ( ) 에 대한 질문 제외 )
여기에 이메일 주소를 입력하세요. 우편.
감사의 표시로 간단한 거래 "Grail" - Expert Advisor!, cat. 내 좋은 친구가 생각해 낸 것입니다.(동의). 나는 그와 함께 수동 확인 작업을 합니다. 내장 칠면조는 2개만 사용됩니다.
아이러니하지 않고 이것은 실제로 거의 "성배"(작업에 약간의 기술이 있음)입니다. - 당신은 몇 가지를 통해 확신할 것입니다. 받은 후 몇 분! 어쨌든, 모두 살펴봅시다:
기호 ------
기간 30분 (M30) 2007.01.02 11:00 - 2007.08.15 00:00
모든 틱 모델링(각 틱의 프랙탈 보간으로 사용 가능한 모든 가장 작은 기간을 기반으로 함)
시뮬레이션 품질 67.35%
초기 보증금 10000.00
당기순이익 4009.24
총 이익 6335.06 총 손실 -2325.82
수익성 2.72 승률 21.44
최대 드로다운 245.63(2.18%) 상대 드로다운 2.18%(245.63)
총 거래 187
숏포지션(%원) 71(80.28%)
롱포지션(%원) 116(68.10%)
수익성 있는 거래(전체의 %) 136(72.73%)
손실 거래(전체의 %) 51(27.27%)
가장 큰 수익을 내는 거래는 145.02이고 손실 거래는 -47입니다. 77
평균 이기는 거래 46.58, 손실 거래 -45.60
최대 연속 우승(이익) 9(586.96)
연속 손실(손실) 4(-189.99
그리고 이것은 대표자 외의 테스트 그래프입니다. 11월/12월 샘플 이전 2006년:
사용자 지정 표시기 가 호출되는 실제 매개변수는 목록의 extern 키(번호, 순서, 유형, ...)와 함께 나열된 형식 매개변수와 일치하지 않을 가능성이 높습니다. 꽤 흔한 실수.
좋은 저녁이에요!
나는 두 쌍을 하나의 고문으로 결합하기로 결정했습니다. 이 작업을 수행했습니다.
그러나 갑자기 그는 의심이 들었다. 그리고 이렇게 했습니다:
모든 것이 온라인과 테스터에서 작동합니다! 제대로 안된거 아닐까요? 다음과 같이 해야 합니다.
두 번째 옵션도 테스터에서 작동하는 것 같습니다.그러나 가장 좋은 방법은 무엇입니까?