포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 1097 1...109010911092109310941095109610971098109911001101110211031104...1178 새 코멘트 A13ksandr 2016.09.15 11:32 #10961 alvlaf : 귀하가 제공한 마지막 코드는 이미 한 단계 발전한 것입니다. 거래를 전혀 열지 않습니다(즉, 금지가 적용됨을 의미함). 왜 아무도 없는지 이해할 때까지. 첨부된 것은 잡지의 스크린샷입니다. 처음에는 변수 이름이 ProfitableSerie이고 반대 기능을 가졌을 뿐입니다. 그리고 한 가지 더 덧붙이자면 int OnInit () // abeiks && LRA: замечания приняты))) { if (! GlobalVariableCheck ( "AllowNewOrders" )) GlobalVariableSet ( "AllowNewOrders" , 1 ); return ( INIT_SUCCEEDED ); } // OnDeinit больше не нужен void OnTick () { if (CountTrades() == 0 ) // Количество ордеров должно равняться нулю { if ((TypeLastHistOrder() == OP_BUY && PriceCloseLastHistOrder(OP_BUY) < PriceOpenLastHistOrder(OP_BUY)) || (TypeLastHistOrder() == OP_SELL && PriceCloseLastHistOrder(OP_SELL) > PriceOpenLastHistOrder(OP_SELL))) // Если последняя сделка убыточная, то открывается такая же, но с увеличенным лотом { GlobalVariableSet ( "AllowNewOrders" , 0 ); Type = TypeLastHistOrder(); if (Type == OP_BUY) Price = Ask; if (Type == OP_SELL) Price = Bid; Lot = NormalizeDouble (LotsLastHistOrder()*Multiplier, 2 ); ticket = OrderSend ( Symbol (), Type, Lot, Price, Slippage, 0 , 0 , IntegerToString (Exp), Magic); return; } if (PriceCloseLastHistOrder() == PriceOpenLastHistOrder() && CountHistTrades() > 0 ) // Если прибыль последней сделки равняется нулю, то открывается такая же { GlobalVariableSet ( "AllowNewOrders" , 0 ); Type = TypeLastHistOrder(); if (Type == OP_BUY) Price = Ask; if (Type == OP_SELL) Price = Bid; Lot = NormalizeDouble (LotsLastHistOrder(), 2 ); ticket = OrderSend ( Symbol (), Type, Lot, Price, Slippage, 0 , 0 , IntegerToString (Exp), Magic); return; } if (((TypeLastHistOrder() == OP_BUY && PriceCloseLastHistOrder(OP_BUY) > PriceOpenLastHistOrder(OP_BUY)) || (TypeLastHistOrder() == OP_SELL && PriceCloseLastHistOrder(OP_SELL) < PriceOpenLastHistOrder(OP_SELL))) || CountHistTrades() == 0 ) // Если последняя сделка прибыльная, то открывается ордер { if ( GlobalVariableGet ( "AllowNewOrders" ) > 0 ) return ; if (SignalBuy() && MaxOpenOrders > OrdersTotal ()) { ticket = OrderSend ( Symbol (), OP_BUY, Lots, Ask, Slippage, 0 , 0 , IntegerToString (Exp), Magic); if (ticket> 0 ) GlobalVariableSet ( "AllowNewOrders" , 0 ); return; } if (SignalSell() && MaxOpenOrders > OrdersTotal ()) { ticket = OrderSend ( Symbol (), OP_SELL, Lots, Bid, Slippage, 0 , 0 , IntegerToString (Exp), Magic); if (ticket> 0 ) GlobalVariableSet ( "AllowNewOrders" , 0 ); return; } } GlobalVariableSet ( "AllowNewOrders" , 1 ); } } 이 시도. 뭔가 또 나올 것 같은 느낌... linar 2016.09.15 12:04 #10962 안녕하세요 여러분, MQL4 튜토리얼을 읽기 시작했는데(프로그래밍 방법을 배우고 싶습니다) 구버전이 있는데 어떤 것을 추천하나요? 튜토리얼을 읽고 문서를 읽어볼까요? Nauris Zukas 2016.09.15 12:07 #10963 LRA : // ИХМО так нагляднее 동의한다! A13ksandr 2016.09.16 04:43 #10964 linar : 안녕하세요 여러분, MQL4 튜토리얼을 읽기 시작했는데(프로그래밍 방법을 배우고 싶습니다) 구버전이 있는데 어떤 것을 추천하나요? 튜토리얼을 읽고 문서를 읽어볼까요? 이전에 C로 프로그래밍한 적이 있다면 무료로 제공되는 더 간단한 표시기 및 조언자의 소스를 보고 도움말을 읽는 것이 좋습니다. 프로그래밍을 전혀 하지 않았다면... 더 간단한 무료 표시기 및 조언자의 소스를 보고 도움말을 읽으십시오. ))) 이 포럼에는 튜토리얼도 있습니다: https://www.mql5.com/en/forum/108883 Aleksandr Afanasenko 2016.09.16 04:55 #10965 A13ksandr : 처음에는 변수 이름이 ProfitableSerie이고 반대 기능을 가졌을 뿐입니다. 그리고 한 가지 더 덧붙이자면 이 시도. 뭔가 또 나올 것 같은 느낌... 한 걸음 더 나아가 - 봇이 하나의 거래를 열었지만 그것이 끝이었습니다. 다른 것은 열리지 않으며 어떤 시도에 대한 로그에도 메시지가 없습니다. A13ksandr 2016.09.16 05:23 #10966 alvlaf : 한 걸음 더 나아가 - 봇이 하나의 거래를 열었지만 그것이 끝이었습니다. 다른 것은 열리지 않으며 어떤 시도에 대한 로그에도 메시지가 없습니다. 젠장, 처음에는 코드의 일부만 올바르게 삽입하고 싶었지만 모두 복사했는데 이 오류가 수정되지 않았습니다. 마지막 조건에서 이렇게 되어야 합니다. if ( GlobalVariableGet ( "AllowNewOrders" ) == 0 ) return ; 그러나 일반적으로 그는 단일 거래를 체결해서는 안됩니다. 처음 두 조건 중 하나가 제대로 작동하지 않습니다. 지금 당장 수정하세요, 우리는 볼 것입니다 :) 업데이트: 만일을 대비하여 OnDeinit를 다시 가져오세요. void OnDeInit() { GlobalVariableSet ( "AllowNewOrders" , 1 ); } Aleksandr Afanasenko 2016.09.16 09:06 #10967 A13ksandr : 젠장, 처음에는 코드의 일부만 올바르게 삽입하고 싶었지만 모두 복사했는데 이 오류가 수정되지 않았습니다. 마지막 조건에서 이렇게 되어야 합니다. 그러나 일반적으로 그는 단일 거래를 체결해서는 안됩니다. 처음 두 조건 중 하나가 제대로 작동하지 않습니다. 지금 당장 수정하세요, 우리는 볼 것입니다 :) 업데이트: 만일을 대비하여 OnDeinit를 다시 가져오세요. 나는 그것을 시도했는데, 한 번의 적자 거래 후 매 틱마다 포지션을 열기 시작했습니다. A13ksandr 2016.09.16 11:18 #10968 alvlaf : 나는 그것을 시도했고, 빨간색에서 한 번의 거래 후에 각 틱에서 포지션을 열기 시작했습니다. 첫 번째 줄에 처음 두 조건을 입력하십시오. if ( GlobalVariableGet ("AllowNewOrders") == 1) 반환; 그리고 한 쌍에서 첫 번째 테스트를 시도하십시오. 브로커 그랜드캐피탈? Aleksandr Afanasenko 2016.09.16 12:38 #10969 A13ksandr : 첫 번째 줄에 처음 두 조건을 입력하십시오. if (GlobalVariableGet("AllowNewOrders") == 1) 반환; 그리고 한 쌍에서 첫 번째 테스트를 시도하십시오. 브로커 그랜드캐피털? //------------------------------------------------ ---------------------- int OnInit() { if (!GlobalVariableCheck("AllowNewOrders")) GlobalVariableSet("AllowNewOrders",1); 반환(INIT_SUCCESSED); } //------------------------------------------------ ---------------------- 무효 OnDeInit() { GlobalVariableSet("AllowNewOrders",1); } //------------------------------------------------ ---------------------- 무효 OnTick() { if (GlobalVariableGet("AllowNewOrders") == 1) 반환; { if (CountTrades() == 0) // 주문 수는 0과 같아야 합니다. { if ((TypeLastHistOrder() == OP_BUY && PriceCloseLastHistOrder(OP_BUY) < PriceOpenLastHistOrder(OP_BUY)) || (TypeLastHistOrder() == OP_SELL && PriceCloseLastHistOrder(OP_SELL) > PriceOpenLastHistOrder(OP_SELL))) // 마지막 거래가 수익성이 없으면 같은 거래가 열리지만 로트가 증가합니다. { GlobalVariableSet("AllowNewOrders", 0); 유형 = TypeLastHistOrder(); if (유형 == OP_BUY) 가격 = 묻기; if (유형 == OP_SELL) 가격 = 입찰가; 로트 = NormalizeDouble(LotsLastHistOrder()*승수, 2); 티켓 = OrderSend(Symbol(), Type, Lot, Price, Slippage, 0, 0, IntegerToString(Exp), Magic); 반품; } if (GlobalVariableGet("AllowNewOrders") == 1) 반환; { if (PriceCloseLastHistOrder() == PriceOpenLastHistOrder() && CountHistTrades() > 0) // 마지막 거래의 이익이 0이면 동일하게 엽니다. { GlobalVariableSet("AllowNewOrders", 0); 유형 = TypeLastHistOrder(); if (유형 == OP_BUY) 가격 = 묻기; if (유형 == OP_SELL) 가격 = 입찰가; 많은 = NormalizeDouble(LotsLastHistOrder(), 2); 티켓 = OrderSend(Symbol(), Type, Lot, Price, Slippage, 0, 0, IntegerToString(Exp), Magic); 반품; } if (((TypeLastHistOrder() == OP_BUY && PriceCloseLastHistOrder(OP_BUY) > PriceOpenLastHistOrder(OP_BUY)) || (TypeLastHistOrder() == OP_SELL && PriceCloseLastHistOrder(OP_SELL) < PriceOpenLastHistOrder(OP_SELL))) || CountHistTrades() == 0)// 마지막 거래가 수익성이 있으면 주문이 열립니다. { if (GlobalVariableGet("AllowNewOrders") == 0) 반환; if (SignalBuy() && MaxOpenOrders > OrdersTotal()) { 티켓 = OrderSend(Symbol(), OP_BUY, lot, Ask, Slippage, 0, 0, IntegerToString(Exp), Magic); if (티켓>0) GlobalVariableSet("AllowNewOrders", 0); 반품; } if (SignalSell() && MaxOpenOrders > OrdersTotal()) { 티켓 = OrderSend(Symbol(), OP_SELL, 랏, Bid, Slippage, 0, 0, IntegerToString(Exp), Magic); if (티켓>0) GlobalVariableSet("AllowNewOrders", 0); 반품; } } } GlobalVariableSet("AllowNewOrders", 1); } } } 네, 그랜드 캐피탈입니다. 올바르게 삽입되었습니까? 그가 다시 거래 개시를 중단한 것. Any rookie question, so 오류, 버그, 질문 MQL4 및 MQL5에 대한 wishmast 2016.09.16 13:04 #10970 얘들아, 난 이미 내 머리를 부숴버렸어. 어드바이저가 고점과 저점에 대한 지연을 설정하도록 하는 방법, 예를 들어 1/4의 테이크를 사용하여 8개의 양초에 대해 설정하는 방법. 나는 다음과 같이 한다. 이중 Vhod1=iHighest( Symbol() ,0,MODE_HIGH,8,0); 이중 Vhod2=iLowest(Symbol(),0,MODE_LOW,8,0); 이중 TP=((Vhod1-Vhod2)/4)+Vhod1; 매개변수를 변경하려고 했지만 정류장이 올바르지 않다고 표시되며 가격은 7.00000으로 설정됩니다. 어디로 가는지 명확하지 않습니다. Any rookie question, so MQL4 및 MQL5에 대한 [ARCHIVE] 포럼을 어지럽히 지 1...109010911092109310941095109610971098109911001101110211031104...1178 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
귀하가 제공한 마지막 코드는 이미 한 단계 발전한 것입니다. 거래를 전혀 열지 않습니다(즉, 금지가 적용됨을 의미함). 왜 아무도 없는지 이해할 때까지. 첨부된 것은 잡지의 스크린샷입니다.
처음에는 변수 이름이 ProfitableSerie이고 반대 기능을 가졌을 뿐입니다. 그리고 한 가지 더 덧붙이자면
이 시도. 뭔가 또 나올 것 같은 느낌...
안녕하세요 여러분, MQL4 튜토리얼을 읽기 시작했는데(프로그래밍 방법을 배우고 싶습니다) 구버전이 있는데 어떤 것을 추천하나요? 튜토리얼을 읽고 문서를 읽어볼까요?
이전에 C로 프로그래밍한 적이 있다면 무료로 제공되는 더 간단한 표시기 및 조언자의 소스를 보고 도움말을 읽는 것이 좋습니다.
프로그래밍을 전혀 하지 않았다면... 더 간단한 무료 표시기 및 조언자의 소스를 보고 도움말을 읽으십시오. )))
이 포럼에는 튜토리얼도 있습니다: https://www.mql5.com/en/forum/108883
처음에는 변수 이름이 ProfitableSerie이고 반대 기능을 가졌을 뿐입니다. 그리고 한 가지 더 덧붙이자면
이 시도. 뭔가 또 나올 것 같은 느낌...
한 걸음 더 나아가 - 봇이 하나의 거래를 열었지만 그것이 끝이었습니다. 다른 것은 열리지 않으며 어떤 시도에 대한 로그에도 메시지가 없습니다.
젠장, 처음에는 코드의 일부만 올바르게 삽입하고 싶었지만 모두 복사했는데 이 오류가 수정되지 않았습니다. 마지막 조건에서 이렇게 되어야 합니다.
그러나 일반적으로 그는 단일 거래를 체결해서는 안됩니다. 처음 두 조건 중 하나가 제대로 작동하지 않습니다. 지금 당장 수정하세요, 우리는 볼 것입니다 :)
업데이트: 만일을 대비하여 OnDeinit를 다시 가져오세요.
젠장, 처음에는 코드의 일부만 올바르게 삽입하고 싶었지만 모두 복사했는데 이 오류가 수정되지 않았습니다. 마지막 조건에서 이렇게 되어야 합니다.
그러나 일반적으로 그는 단일 거래를 체결해서는 안됩니다. 처음 두 조건 중 하나가 제대로 작동하지 않습니다. 지금 당장 수정하세요, 우리는 볼 것입니다 :)
업데이트: 만일을 대비하여 OnDeinit를 다시 가져오세요.
나는 그것을 시도했고, 빨간색에서 한 번의 거래 후에 각 틱에서 포지션을 열기 시작했습니다.
첫 번째 줄에 처음 두 조건을 입력하십시오.
if ( GlobalVariableGet ("AllowNewOrders") == 1) 반환;
그리고 한 쌍에서 첫 번째 테스트를 시도하십시오.
브로커 그랜드캐피탈?
첫 번째 줄에 처음 두 조건을 입력하십시오.
if (GlobalVariableGet("AllowNewOrders") == 1) 반환;
그리고 한 쌍에서 첫 번째 테스트를 시도하십시오.
브로커 그랜드캐피털?
}
네, 그랜드 캐피탈입니다. 올바르게 삽입되었습니까? 그가 다시 거래 개시를 중단한 것.
얘들아, 난 이미 내 머리를 부숴버렸어. 어드바이저가 고점과 저점에 대한 지연을 설정하도록 하는 방법, 예를 들어 1/4의 테이크를 사용하여 8개의 양초에 대해 설정하는 방법.
나는 다음과 같이 한다.
이중 Vhod1=iHighest( Symbol() ,0,MODE_HIGH,8,0);
이중 Vhod2=iLowest(Symbol(),0,MODE_LOW,8,0);
이중 TP=((Vhod1-Vhod2)/4)+Vhod1;
매개변수를 변경하려고 했지만 정류장이 올바르지 않다고 표시되며 가격은 7.00000으로 설정됩니다. 어디로 가는지 명확하지 않습니다.