언어를 알고 있는 프로그래머가 프로그램을 여는 데 너무 게으른 경우가 한 가지 있습니다. 또 다른 문제는 언어를 모르는 사람이 본질적으로 간단한 질문에 대답하기 위해 언어를 배우는 데 너무 게으른 경우입니다. 프로그래머에게 언어에 대한 지식이 필요하다면 나에게 그 언어에 뛰어드는 것은 의미가 없습니다. :) 그게 전부입니다. 그러나 물론 아무도 대답하지 않으면 대답해야 합니다. 하지만 여기서 프로그래머만 소통한다면 포럼의 요점은 무엇입니까?
언어를 알고 있는 프로그래머가 프로그램을 여는 데 너무 게으른 경우가 한 가지 있습니다. 또 다른 문제는 언어를 모르는 사람이 본질적으로 간단한 질문에 대답하기 위해 언어를 배우는 데 너무 게으른 경우입니다. 프로그래머에게 언어에 대한 지식이 필요하다면 나에게 그 언어에 뛰어드는 것은 의미가 없습니다. :) 그게 전부입니다. 그러나 물론 아무도 대답하지 않으면 대답해야 합니다. 하지만 여기서 프로그래머만 소통한다면 포럼의 요점은 무엇입니까?
여보세요!!! 좋은 조언을 해주신 모든 분들께 감사드립니다. 그러나 나는 여전히 내가 시작한 것에서 앞으로 나아갈 수 없었습니다)) 나의 고문은 두 개의 동일한 주문을 열고 나머지는 무브먼트에 반대합니다. 무브먼트에서 열리도록 변경하고 싶습니다!!! 모든 옵션을 시도했습니다.
누가 할 수 있는지 알려주세요
문자열 GLOB_START;
정수 초기화() { GLOB_START = "@" + DoubleToStr(ID,0) + "@" + "_start"; if ( !GlobalVariableCheck( GLOB_START ) )GlobalVariableSet(GLOB_START,TimeCurrent()); 리턴(0); }
이중 check_lot(이중 &lo) { 더블 l = MarketInfo(Symbol(),MODE_LOTSTEP); 정수 확인 = 0; 동안 ( l < 1 ){l*=10;ok++;} if( lo < MarketInfo(Symbol(),MODE_MINLOT) )lo = MarketInfo(Symbol(),MODE_MINLOT); if( lo > MarketInfo(Symbol(),MODE_MAXLOT) )lo = MarketInfo(Symbol(),MODE_MAXLOT); return(NormalizeDouble(lo,ok));
안녕하세요 프로그래머 여러분.
교과서에 오르기에는 너무 게으르다. 아마도 누군가가 0.1 단계가 아니라 0.01 단계로 자금 관리를 적용하기 위해 고문에서 변경해야 할 사항을 알고 있을 수 있습니다.
안녕하세요 프로그래머 여러분.
교과서에 오르기에는 너무 게으르다. 아마도 누군가가 0.1 단계가 아니라 0.01 단계로 자금 관리를 적용하기 위해 고문에서 변경해야 할 사항을 알고 있을 수 있습니다.
모두 게으르다
모두 게으르다
언어를 알고 있는 프로그래머가 프로그램을 여는 데 너무 게으른 경우가 한 가지 있습니다. 또 다른 문제는 언어를 모르는 사람이 본질적으로 간단한 질문에 대답하기 위해 언어를 배우는 데 너무 게으른 경우입니다. 프로그래머에게 언어에 대한 지식이 필요하다면 나에게 그 언어에 뛰어드는 것은 의미가 없습니다. :) 그게 전부입니다. 그러나 물론 아무도 대답하지 않으면 대답해야 합니다. 하지만 여기서 프로그래머만 소통한다면 포럼의 요점은 무엇입니까?
언어를 알고 있는 프로그래머가 프로그램을 여는 데 너무 게으른 경우가 한 가지 있습니다. 또 다른 문제는 언어를 모르는 사람이 본질적으로 간단한 질문에 대답하기 위해 언어를 배우는 데 너무 게으른 경우입니다. 프로그래머에게 언어에 대한 지식이 필요하다면 나에게 그 언어에 뛰어드는 것은 의미가 없습니다. :) 그게 전부입니다. 그러나 물론 아무도 대답하지 않으면 대답해야 합니다. 하지만 여기서 프로그래머만 소통한다면 포럼의 요점은 무엇입니까?
요점이 없다면 - 질문하지 말고 바로 여기에서
요점이 없다면 - 질문하지 말고 바로 여기에서
그리고 그 덕분에
안녕하세요 프로그래머 여러분.
교과서에 오르기에는 너무 게으르다. 아마도 누군가가 0.1 단계가 아니라 0.01 단계로 자금 관리를 적용하기 위해 고문에서 변경해야 할 사항을 알고 있을 수 있습니다.
2자리가 변경되면 정상적으로 보이거나 작동합니다.
전체 포럼을 읽은 것으로 표시할 수 있습니까?
그리고 MQL5 포럼도...
감사해요
2자리가 변경되면 정상적으로 보이거나 작동합니다.
누군가 게으르지 않은 것으로 나타났습니다. 제가 실수를
여보세요!!! 좋은 조언을 해주신 모든 분들께 감사드립니다. 그러나 나는 여전히 내가 시작한 것에서 앞으로 나아갈 수 없었습니다)) 나의 고문은 두 개의 동일한 주문을 열고 나머지는 무브먼트에 반대합니다. 무브먼트에서 열리도록 변경하고 싶습니다!!! 모든 옵션을 시도했습니다.
누가 할 수 있는지 알려주세요
문자열 GLOB_START;
정수 초기화()
{
GLOB_START = "@" + DoubleToStr(ID,0) + "@" + "_start";
if ( !GlobalVariableCheck( GLOB_START ) )GlobalVariableSet(GLOB_START,TimeCurrent());
리턴(0);
}
정수 초기화()
{
스위치( 초기화되지 않은 이유() )
{
사례 REASON_REMOVE: delete_glob ( "@" + DoubleToStr(ID,0) + "@" );
}
if ( IsTesting() )delete_glob ( "@" + DoubleToStr(ID,0) + "@" );
리턴(0);
}
무효 delete_glob (문자열 c)
{
정수 나;
for ( i = GlobalVariablesTotal()-1; i>= 0 ; i-- )if ( StringFind(GlobalVariableName(i),c) >= 0 )GlobalVariableDel(GlobalVariableName(i));
}
정수 시작()
{
주석(정보());
int KOL_BUY = order_total(0);
int KOL_SELL = order_total(1);
더블 엘;
if ( order_total() == 0 )
{
오픈(0,랏,0,TP);
오픈(1,랏,0,TP);
}
if ( KOL_BUY == 0 && KOL_SELL != 0 )
{
오픈(0,랏,0,TP);
내가 = last_trade(1);
오픈(1,1,0,0);
수정 주문(1);
}
if ( KOL_BUY != 0 && KOL_SELL == 0 )
{
오픈(1,랏,0,TP);
내가 = last_trade(0);
오픈(0,1,0,0);
수정 주문(0);
}
리턴(0);
}
문자열 정보()
{
정수 나;
이중 버프_1 = 0, 버프_2 = 0, 버프_3 = 0;
문자열 res = "\n";
for( i = OrdersHistoryTotal() - 1, i >= 0, i--)
{
주문 선택(i,SELECT_BY_POS,MODE_HISTORY);
if( OrderMagicNumber() == ID )
{
if ( OrderOpenTime() >= iTime(NULL,PERIOD_D1,0) )buff_1 += OrderProfit();
if ( OrderOpenTime() >= iTime(NULL,PERIOD_D1,1) && OrderOpenTime() < iTime(NULL,PERIOD_D1,0) )buff_2 += OrderProfit();
if ( OrderOpenTime() >= GlobalVariableGet(GLOB_START) )buff_3 += OrderProfit();
}
}
res = res + "예금 통화의 이익 " + TimeToStr(iTime(NULL,PERIOD_D1,0)) + ": " + DoubleToStr(buff_1,0) + "\n" + "\n";
res = res + "예금 통화의 이익 " + TimeToStr(iTime(NULL,PERIOD_D1,1)) + ": " + DoubleToStr(buff_2,0) + "\n" + "\n";
res = res + "예금 통화 총 이익: "+ DoubleToStr(buff_3,0) + "\n";
반환(res);
}
무효 modify_orders( 정수 유형 )
{
정수 나;
datetime time_last = 0, time_first = TimeCurrent();
이중 SPREAD = MarketInfo(Symbol(),MODE_SPREAD)*MarketInfo(Symbol(),MODE_POINT), op_pr_last, op_pr_first, 레벨;
for( i = OrdersTotal() - 1, i >= 0, i-- )
{
주문 선택(i,SELECT_BY_POS,MODE_TRADES);
if( OrderMagicNumber() == ID && OrderType() == 유형)
{
if ( OrderOpenTime() > time_last )
{
op_pr_last = OrderOpenPrice();
time_last = OrderOpenTime();
}
if ( OrderOpenTime() < time_first )
{
op_pr_first = OrderOpenPrice();
time_first = OrderOpenTime();
}
}
}
if ( 유형 == 0 ) 레벨 = op_pr_last + MathAbs(op_pr_last-op_pr_first) * (SL/100);
if ( 유형 == 1 ) 레벨 = op_pr_last - MathAbs(op_pr_last-op_pr_first) * (SL/100);
for( i = OrdersTotal() - 1, i >= 0, i -- )
{
주문 선택(i,SELECT_BY_POS,MODE_TRADES);
if( OrderMagicNumber() == ID && OrderType() == 유형 && NormalizeDouble(OrderTakeProfit(),Digits) != NormalizeDouble(level,Digits) )OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),level,0 );
}
}
이중 last_trade( int t )
{
정수 나;
이중 해상도 = -1;
날짜 시간 = 0;
for(i=OrdersTotal()-1;i>=0;i--)
{
주문 선택(i,SELECT_BY_POS,MODE_TRADES);
if(OrderOpenTime()>time && OrderMagicNumber()==ID && OrderType() == t)
{
res = OrderLots();
시간 = OrderOpenTime();
}
}
if (승수)return(res * Lot_koeff);
if ( !multiplier )return(res + Lot_koeff);
}
int open(int 유형, 이중 l, 이중 sl=0, 이중 tp=0, 문자열 통신 = "")
{
int isOpened = 0, 시도 = 0;
더블 s,t;
동안 ( IsTradeContextBusy() ){Sleep(500);}
새로 고침();
if ( sl != 0 && sl < MarketInfo(Symbol(),MODE_STOPLEVEL) )sl = MarketInfo(Symbol(),MODE_STOPLEVEL);
if ( tp != 0 && tp < MarketInfo(Symbol(),MODE_STOPLEVEL) )tp = MarketInfo(Symbol(),MODE_STOPLEVEL);
if ( 유형 == 0 )
{
if (tp == 0)t = 0;
if ( tp != 0 )t = 질문 + tp * 포인트;
if ( sl == 0 )s = 0;
if ( sl != 0 )s = 입찰가 - sl * 포인트;
}
if ( 유형 == 1 )
{
if (tp == 0)t = 0;
if ( tp != 0 )t = 입찰가 - tp * 포인트;
if ( sl == 0 )s = 0;
if ( sl != 0 )s = 묻다 + sl * 포인트;
}
s = NormalizeDouble(s, 자릿수);
t = NormalizeDouble(t, 자릿수);
if(type==0)isOpened = OrderSend(Symbol(),type,check_lot(l),NormalizeDouble(Ask,Digits),10,s,t,comm,ID);
if(type==1)isOpened = OrderSend(Symbol(),type,check_lot(l),NormalizeDouble(Bid,Digits),10,s,t,comm,ID);
수면(500);
동안(isOpened<0)
{
동안 ( IsTradeContextBusy() ){Sleep(500);}
새로 고침();
if ( 유형 == 0 )
{
if (tp == 0)t = 0;
if ( tp != 0 )t = 입찰가 + tp * 포인트;
if ( sl == 0 )s = 0;
if ( sl != 0 )s = 입찰가 - sl * 포인트;
}
if ( 유형 == 1 )
{
if (tp == 0)t = 0;
if ( tp != 0 )t = 질문 - tp * 포인트;
if ( sl == 0 )s = 0;
if ( sl != 0 )s = 묻다 + sl * 포인트;
}
s = NormalizeDouble(s, 자릿수);
t = NormalizeDouble(t, 자릿수);
시도++;
if(type==0)isOpened = OrderSend(Symbol(),type,check_lot(l),NormalizeDouble(Ask,Digits),10,s,t,comm,ID);
if(type==1)isOpened = OrderSend(Symbol(),type,check_lot(l),NormalizeDouble(Bid,Digits),10,s,t,comm,ID);
if(시도 > 5) 중단;
if(isOpened>=0) break;
수면(500);
}
if(isOpened<0) Alert("주문이 열리지 않았습니다. 오류:", GetLastError());
반환(isOpened);
}
int order_total( int type_1 = -1, int type_2 = -1 )
{
정수 나;
intcol=0;
for(i=OrdersTotal()-1;i>=0;i--)
{
주문 선택(i,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber()==ID && (OrderType() == type_1 || OrderType() == type_2) )kol++;
if(OrderMagicNumber()==ID && type_1 == -1 && type_2 == -1 )kol++;
}
반환(열);
}
이중 check_lot(이중 &lo)
{
더블 l = MarketInfo(Symbol(),MODE_LOTSTEP);
정수 확인 = 0;
동안 ( l < 1 ){l*=10;ok++;}
if( lo < MarketInfo(Symbol(),MODE_MINLOT) )lo = MarketInfo(Symbol(),MODE_MINLOT);
if( lo > MarketInfo(Symbol(),MODE_MAXLOT) )lo = MarketInfo(Symbol(),MODE_MAXLOT);
return(NormalizeDouble(lo,ok));
그런 말을 하세요. 특정 조건 에서 동시에 주문을 모두 열 수 있는 N명의 고문이 계정에 있습니다. 각 고문은 계정에서 1개 이하의 주문을 확인하지만 결국에는 N 주문, 무엇을 할 수 있습니까?