모든 조건이 충족되면 각 새 양초에서 주문이 열리지 않도록 만드는 방법을 알려주십시오. 방금 이 코드를 삽입했는데 실제로 4개의 확인 초를 기다리기 시작했지만 1번 주문을 연 후(모든 조건이 충족되었을 때) 다음 모든 초에 대해 주문을 열기 시작했습니다. 조건이 저장되면 이것은 테스터에서 어떻게 보이는지.
+ 만일을 위해 원본 코드를 모두 붙여넣겠습니다. 그렇지 않으면 갑자기 중요한 것을 놓쳤습니다.
모든 조건이 충족되면 새 양초에서 주문이 열리지 않도록 만드는 방법을 알려주십시오. 방금 이 코드를 삽입했는데 실제로 4개의 확인 초를 기다리기 시작했지만 1번 주문을 연 후(모든 조건이 충족되었을 때) 다음 모든 초에 대해 주문을 열기 시작했습니다. 조건이 저장되면 이것은 테스터에서 어떻게 보이는지.
+ 만일을 위해 원본 코드를 모두 붙여넣겠습니다. 그렇지 않으면 갑자기 중요한 것을 놓쳤습니다.
미결 주문을 통제(반대)해야 함
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick ()
{
//---if (CheckForOpen()== 0 &&CountTrade( 0 )== 0 ) // Если сигнал для покупок и нет открытых покупок
{
if ( OrderSend ( Symbol (),OP_BUY,Lots(),Ask,Slip,Bid-StopLoss* Point ,Ask+TakeProfit* Point , "" ,MagicNumber, 0 ,Blue)) Print ( "BUY OK" );
}
if (CheckForOpen()== 1 &&CountTrade( 1 )== 0 ) // Если сигнал для продаж и нет открытых продаж
{
if ( OrderSend ( Symbol (),OP_SELL,Lots(),Bid,Slip,Ask+StopLoss* Point ,Bid-TakeProfit* Point , "" ,MagicNumber, 0 ,Red)) Print ( "SELL OK" );
}
}
//+----------------------------------------------------------------------------+//| Счетчик ордеров (0)-buy (1)-sell ()-all |//+----------------------------------------------------------------------------+int CountTrade( int ot=- 1 )
{
int count = 0 ;
for ( int i = OrdersTotal ()- 1 ; i>= 0 ; i--)
{
if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol () && OrderMagicNumber() == MagicNumber)
{
if (OrderType()==ot||ot< 0 ) count++;
}
}
}
return (count);
}
//+------------------------------------------------------------------+//| Check for open order conditions |//+------------------------------------------------------------------+int CheckForOpen() // Открытие ордера по методу Пуриа
{
double malw,mas1,mas2,macd;
int res=- 1 , buy= 0 , sell= 0 ;
// Считывание параметров индикаторов 3 свечи
malw= iMA ( NULL , 0 ,MovingPeriodLw, 0 , MODE_EMA , PRICE_CLOSE , 3 );
mas1= iMA ( NULL , 0 ,MovingPeriodS1, 0 , MODE_LWMA , PRICE_LOW , 3 );
mas2= iMA ( NULL , 0 ,MovingPeriodS2, 0 , MODE_LWMA , PRICE_LOW , 3 );
macd= iMACD ( NULL , 0 , 15 , 26 , 1 , PRICE_CLOSE ,MODE_MAIN, 3 );
if (malw>mas1&&malw>mas2&&macd> 0 ) {buy+= 1 ; sell= 0 ;}
if (malw<mas1&&malw<mas2&&macd< 0 ) {buy= 0 ; sell+= 1 ;}
// Считывание параметров индикаторов 2 свечи
malw= iMA ( NULL , 0 ,MovingPeriodLw, 0 , MODE_EMA , PRICE_CLOSE , 2 );
mas1= iMA ( NULL , 0 ,MovingPeriodS1, 0 , MODE_LWMA , PRICE_LOW , 2 );
mas2= iMA ( NULL , 0 ,MovingPeriodS2, 0 , MODE_LWMA , PRICE_LOW , 2 );
macd= iMACD ( NULL , 0 , 15 , 26 , 1 , PRICE_CLOSE ,MODE_MAIN, 2 );
if (malw>mas1&&malw>mas2&&macd> 0 ) {buy+= 1 ; sell= 0 ;}
if (malw<mas1&&malw<mas2&&macd< 0 ) {buy= 0 ; sell+= 1 ;}
// Считывание параметров индикаторов 1 свечи
malw= iMA ( NULL , 0 ,MovingPeriodLw, 0 , MODE_EMA , PRICE_CLOSE , 1 );
mas1= iMA ( NULL , 0 ,MovingPeriodS1, 0 , MODE_LWMA , PRICE_LOW , 1 );
mas2= iMA ( NULL , 0 ,MovingPeriodS2, 0 , MODE_LWMA , PRICE_LOW , 1 );
macd= iMACD ( NULL , 0 , 15 , 26 , 1 , PRICE_CLOSE ,MODE_MAIN, 1 );
if (malw>mas1&&malw>mas2&&macd> 0 ) {buy+= 1 ; sell= 0 ;}
if (malw<mas1&&malw<mas2&&macd< 0 ) {buy= 0 ; sell+= 1 ;}
// Считывание параметров индикаторов 0 свечи
malw= iMA ( NULL , 0 ,MovingPeriodLw, 0 , MODE_EMA , PRICE_CLOSE , 0 );
mas1= iMA ( NULL , 0 ,MovingPeriodS1, 0 , MODE_LWMA , PRICE_LOW , 0 );
mas2= iMA ( NULL , 0 ,MovingPeriodS2, 0 , MODE_LWMA , PRICE_LOW , 0 );
macd= iMACD ( NULL , 0 , 15 , 26 , 1 , PRICE_CLOSE ,MODE_MAIN, 0 );
if (malw>mas1&&malw>mas2&&macd> 0 ) {buy+= 1 ; sell= 0 ;}
if (malw<mas1&&malw<mas2&&macd< 0 ) {buy= 0 ; sell+= 1 ;}
if (buy == 4 ) res= 0 ;
if (sell== 4 ) res= 1 ;
return (res);
}
예, 더 이상 재진입이 없었습니다. 그러나 이것이 Countertrade의 방식이라면 최소한 하나의 주문이 열리는 한 새로운 신호에 대한 반응이 없을 것입니다. 이는 필요하지 않습니다. 저것들. 첫 번째 이후에 다시 열면 안 되지만 malw 또는 / 및 macd가 위치를 변경하고 조건에 따라 주문에 입력해야 합니다. 이는 신호 +가 4번 확인되면 신호입니다. 행 => 포지션 열기 . 코드를 추가하려면 아이디어에 따라 모든 것이 준비되어 있어야 합니다. 이를 위해 무엇을 더 추가해야 합니까?
여기서 손가락은 OrderSend를 밀어 넣는 것만으로는 가치가 없으며 가능한 한 많이 귀찮게하지 않을 것입니다. 적절하게 사면과 슈카티를 받으십시오.
Volodya, 질문은 달랐습니다.
Volodya, 질문은 달랐습니다.
무엇에?
무엇에?
도브라니히)
토비 테즈.
모든 조건이 충족되면 각 새 양초에서 주문이 열리지 않도록 만드는 방법을 알려주십시오. 방금 이 코드를 삽입했는데 실제로 4개의 확인 초를 기다리기 시작했지만 1번 주문을 연 후(모든 조건이 충족되었을 때) 다음 모든 초에 대해 주문을 열기 시작했습니다. 조건이 저장되면 이것은 테스터에서 어떻게 보이는지.
+ 만일을 위해 원본 코드를 모두 붙여넣겠습니다. 그렇지 않으면 갑자기 중요한 것을 놓쳤습니다.
모든 조건이 충족되면 새 양초에서 주문이 열리지 않도록 만드는 방법을 알려주십시오. 방금 이 코드를 삽입했는데 실제로 4개의 확인 초를 기다리기 시작했지만 1번 주문을 연 후(모든 조건이 충족되었을 때) 다음 모든 초에 대해 주문을 열기 시작했습니다. 조건이 저장되면 이것은 테스터에서 어떻게 보이는지.
+ 만일을 위해 원본 코드를 모두 붙여넣겠습니다. 그렇지 않으면 갑자기 중요한 것을 놓쳤습니다.
미결 주문을 통제(반대)해야 함
나는 MakarFX에서 코드를 변경하려고 시도했고, 결과적으로 이것이 내가 현재 가지고 있는 것입니다:
강조 표시된 것은 내가 나 자신으로부터 기여하려고 한 것입니다. 결과적으로 모든 것이 제대로 작동 하지만 구매 시에만 거래가 이루어집니다. 판매에도 열리도록 만드는 방법, 누가 압니까???
나는 MakarFX에서 코드를 변경하려고 시도했고, 결과적으로 이것이 내가 현재 가지고 있는 것입니다:
강조 표시된 것은 내가 나 자신으로부터 기여하려고 한 것입니다. 결과적으로 모든 것이 제대로 작동 하지만 구매 시에만 거래가 이루어집니다. 판매에도 열리도록 만드는 방법, 누가 압니까???